使用sap.ui.getCore()设置变量或模型时出现问题

2020-09-06 21:20发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我正在使用webIDE个人版,并在使用sap.ui.getCore()设置变量或模型时遇到问题。 以下是我正在尝试的方法。

sap.ui.getCore()。byId(" details")。setModel(oDataJSONModel," local");

在这种情况下,"详细信息"是当前视图中表的标识符。 即使我尝试如下操作,通过该表所在的视图标识符访问表,它仍然会失败。

sap.ui.getCore()。byId(" -details")。setModel(oDataJSONModel," local");

我遇到的错误是... sap.ui.getCore()。byId(" -details")未定义。 因此,对未定义的'setModel'会引发错误。

我做错什么了吗?

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我正在使用webIDE个人版,并在使用sap.ui.getCore()设置变量或模型时遇到问题。 以下是我正在尝试的方法。

sap.ui.getCore()。byId(" details")。setModel(oDataJSONModel," local");

在这种情况下,"详细信息"是当前视图中表的标识符。 即使我尝试如下操作,通过该表所在的视图标识符访问表,它仍然会失败。

sap.ui.getCore()。byId(" -details")。setModel(oDataJSONModel," local");

我遇到的错误是... sap.ui.getCore()。byId(" -details")未定义。 因此,对未定义的'setModel'会引发错误。

我做错什么了吗?

付费偷看设置
发送
6条回答
jovirus
1楼-- · 2020-09-06 22:01

不要使用核心,认为它在UI5世界中是非法的.....

haha101010
2楼-- · 2020-09-06 21:53

Venkata Sunil Naidu Chennam 您可以将模型设置为组件。 像this.getOwnerComponent()。setModel(); 在这里将模型传递给setModel,然后就可以在组件下的所有视图中使用该模型。

BR,

Mahesh

浮生未央
3楼-- · 2020-09-06 22:04

谢谢。 但是然后我该如何将值设置/绑定到其他视图上的控件。

在控制器X中,我想将值设置/绑定到视图Y上的控件(列表或表等)。

下面的代码行仅将值设置/绑定到当前视图(在本例中为View X)。

this.getView()。byId(" ")。setModel(" <​​model>")

有什么建议吗?

jovirus
4楼-- · 2020-09-06 22:03

为什么必须在控制器X中这样做?


1.model可以是全局的

2 。 或者您可以发送事件以查看y,其控制器将做出相应的反应。

小c菟菟
5楼-- · 2020-09-06 21:54

您好Sunil,

默认情况下,核心模型不会传播到组件。因此,您需要获取核心模型并将其手动设置为视图。

检查以下链接和解决方案。

https://stackoverflow.com/ Questions/34164430/无法从sapui5核心访问模型

BR

Mahesh

Doze时光
6楼-- · 2020-09-06 21:59

无法从Controller2中的View1访问Elements,这就是为什么Jun Wu建议您使用Events:

View1:

 <表id =" tbl"/> 

Controller1:

 onInit:函数(){
   var oEventBus = sap.ui.getCore()。getEventBus();
   oEventBus.subscribe(" myChannel"," myEvent",this.setModelOnTable,this);
 },
 setModelOnTable:function(){
   sap.ui.getCore()。byId(" tbl")。setModel(oDataJSONModel," local");
 } 

Controller2:

 onSomeAction:function(){
   var oEventBus = sap.ui.getCore()。getEventBus();
   oEventBus.publish(" myChannel"," myEvent",{});
 } 

一周热门 更多>