使用另一个控件的模型填充控件 - 智能手机问题

时间:2014-10-14 05:25:15

标签: sapui5

我试图让控件的模型位于另一个视图上,并将此模型应用于当前视图的控件。 为此,我将以下代码放入控制器的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控制是空的。)

我该如何解决这个问题?

1 个答案:

答案 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}"
        })
    },
});