我是SAPUI5的新手,我想知道如何保持两个模型同步。我使用sap.ui.getCore()。setModel()和sap.ui.getCore()。getModel(),在两个控制器之间以及控制器和它的视图之间传递数据。现在,如果我在一个控制器中更改模型数据,如何在第二个控制器或视图中更新。
以下是示例代码结构。
我有一个customControl
sap.ui.core.Control.extend("CustomControl", { // call the new Control type "my.Hello"
// and let it inherit from sap.ui.core.Control
metadata : { // the Control API
properties : {
....
"dataProvider": {type : "any", defaultValue: new sap.ui.model.json.JSONModel()},
....
},},
render:function() {
//I am using dataProvider as a model for the Table which is inside this CustomControl
}}
在视图中我将CustomControl用作此
var oCustomCotrol = new CustomControl("XYZ",{....dataProvider: this.getModel("ModelData"),....});
在Controller中我正在设置ModelData
onInit: function() {
console.log("Init update Market");
var responseData = new sap.ui.model.json.JSONModel();
// Ajax call to fetch the data assign it to reponseData,
sap.ui.getCore().setModel(responseData,"ModelData")
},
正在更改数据,但CustomControl中的表未更新
答案 0 :(得分:0)
通常,您只需创建一个或多个模型,并将它们设置在核心或组件上(后者用于基于组件的应用程序)。之后,模型在完整的应用程序/组件中可见。因此,无需手动同步多个模型,因为您可以在任何地方看到一个或多个模型。当在一个控制器中更改模型时,变化随处可见,因为模型在任何地方都可见。那就是它。
我认为你应该从阅读一些SAPUI5教程开始。这是两个好的:
演练对任何人来说都是一个良好的开端。数据绑定教程将重点关注数据绑定,即您将了解有关模型等的更多信息。
也许这会给你一些如何做的提示:
OrthographicCamera camera = new OrthographicCamera(64,32);