我正在尝试使用详细信息视图创建一个splitapp,其中的地图已根据主视图中的选择进行了更新。目前我正在尝试在选择列表项时执行的函数中设置模型。我在主控制器中使用sap.ui.getCore().setModel(oModel, "ModelName");
设置所需的模型。在详细信息控制器中,我尝试使用sap.ui.getCore().getModel("ModelName").getData();
访问模型。但是,sap.ui.getCore().getModel("ModelName")
将以未定义的形式出现。
答案 0 :(得分:1)
建议构建基于Component的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或类似创建的设备模型。
在UI5演练页面上答案 1 :(得分:0)
如果您想拥有全局模型,我建议您使用Component作为主要持有者。
您可以在每个控制器中执行
this.getOwnerComponent().setModel(oModel, sModelName);
然后用
检索它this.getOwnerComponent().getModel(sModelName);
视图和控制器具有自己的模型可见性,因此它是本地的。