点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我正在创建一个具有2个视图的应用程序。我在Manifest.json中创建了一个名为odata Model的名称为:matDescModel,并且据了解,可以从任何视图访问该模型(我正确)。
现在单击按钮后,我将使用以下后端数据填充此模型:
var matnr = this.getView()。byId(" __ inp0")。getValue(); var path =" matDescModel>/GetMatDescSet('" + matnr +"')"; this.getView()。bindElement(path);
我可以在具有绑定的View中查看数据,如下所示:
效果很好
现在在View 2上,我正在执行相同类型的绑定:
在onInit()中的view 2控制器中具有以下代码:
var oModel = this.getOwnerComponent()。getModel(" matDescModel"); this.getView()。setModel(oModel);
当我看到view2的oModel时,可以在调试器代码中看到oData,请参见屏幕截图
但是在视图2上,我没有在屏幕上看到数据,
这是一个有约束力的问题吗? 还是框架只允许绑定一次?
我是否需要从控制器手动进行绑定或如何实现绑定??
致谢
Rakesh
odata.jpg (16.1 kB)
嗨,
我认为这是因为您将模型设置为第二个视图,但没有绑定该视图。
您必须使用与第一个视图相同的路径来绑定视图
致谢
Fabrice
嘿,Fabrice,
感谢您的答复。
是的,如果我按照您的建议进行装订工作正常,那么我已经看到了。 但是,如果我这样做是从后端再次调用oData,我想知道是否已经有数据了,为什么我应该从后端再次调用odata呢?
我怎么只能调用一次odata并将其绑定到多个视图,这就是我想要的还是根本不可能的?
致谢
Rakesh
您不能限制对第二个视图的后端调用,可以尝试以下一种方法,
1)在绑定的更改事件中, 您可以将数据设置为全局json模型(在component.js中定义),
2)进行odata读取调用并准备一个json模型并在两个视图中使用
3)您可以使用模式中的router将值传递给第二个视图
>1)您错了,您的odata模型基于odata服务,而不是您用于view1的实体,您的view1绑定元素意味着odatamodel + entity将会进入后端并提取数据,范围 除非您将其引入其他模型以进行重用,否则仅是当前的当前视图。 还有任何疑问吗? 我建议看一下odatamodel教程。
2)一旦加载了实体数据,就可以使用getProperty()获取数据,是的,如果您想减少后端调用json模型是唯一的方法。
为什么不是全局模型,当您进行元素绑定时,您可以在其中定义更改事件,并且每次都会触发。
一周热门 更多>