我试图让控件的模型位于另一个视图上,并将此模型应用于当前视图的控件。 为此,我将以下代码放入控制器的onBeforeRendering()函数中:
var oModel = sap.ui.getCore().byId('<id of the control in another view>').getModel('<modelName here>');
sap.ui.getCore().byId('<id of the control in the current view>').setModel(oModel, "<modelName here>");
问题是这种结构在PC和平板电脑(android)上运行良好(控件 - sap.m.select - 填充了项目),但这不适用于智能手机(android)(sap.m.select控制是空的。)
我该如何解决这个问题?
答案 0 :(得分:0)
正如@mjd在评论中所建议的那样,我使用了全局模型:
sap.ui.getCore().setModel(<shared model data>, "<modelName>");
然后只是按名称使用了模型。
例如:
page1.controller中的:
sap.ui.getCore().setModel(data, "selection");
然后在page2.view中(在page1.view中使用相同的结构):
var oSelection = new sap.m.Select({
id: 'selectionID',
items: {
path: "selection>/rootElementName",
template: new sap.ui.core.Item({
text: "{selection>elementName}"
})
},
});