我正在尝试创建一个带有详细信息视图的拆分应用程序,并根据主视图中的选择更新地图。目前,我正在尝试在选择列表项时执行的函数中设置Model。我在主控制器中使用sap.ui.getCore().setModel(oModel, "ModelName");
设置所需的模型。在details控制器中,我尝试使用sap.ui.getCore().getModel("ModelName").getData();
访问模型。但是,sap.ui.getCore().getModel("ModelName")
正以未定义的形式出现。
发布于 2016-06-09 17:30:34
建议构建基于组件的UI5应用程序。如果这样做,您可以在组件的init函数中执行模型初始化:
init: function() {
// call the init function of the parent
UIComponent.prototype.init.apply(this, arguments);
// set data model
var oData = {
prop: test
};
var oModel = new JSONModel(oData);
this.setModel(oModel);
}
如果您正在使用manifest.json,最好在那里定义您的模型;此模型将在整个应用程序中可用;包括视图和控制器,如i18n或类似创建的设备模型。
Setting up the component.js,Application descriptors on UI5演练页面。
发布于 2016-06-21 23:47:03
如果你想要一个全局模型,我会建议你使用组件作为主要持有者。
在每个控制器中,您可以执行以下操作
this.getOwnerComponent().setModel(oModel, sModelName);
然后用以下命令检索
this.getOwnerComponent().getModel(sModelName);
视图和控制器具有自己的模型可见性,因此它将是本地的。
https://stackoverflow.com/questions/37718720
复制相似问题