OPENUI5:未显示命名模型聚合绑定数据

时间:2014-08-20 09:24:11

标签: sapui5

阅读Multimodel Support后,我尝试实施它。 使用命名模型时,会发生绑定,但不会显示数据。

//控制器

sap.ui.controller("view.apps.Apps", {

    onInit : function () {
        var oAppsModel = new sap.ui.model.json.JSONModel("model/apps.json");
        this.getView().setModel(oAppsModel, "apps");
    }
});

//查看

sap.ui.jsview("view.apps.Apps", {

    getControllerName: function() {
        return "view.apps.Apps";
    },

    createContent: function(oController) {

        var oInboxList = new sap.m.List({
            inset: true,
            id: "appsList",
            headerText: "Apps"
        });

        oInboxList.bindItems("apps>/items", function(sID, oContext) {
            return new sap.m.StandardListItem({
                title: '{name}',
                description: '{name}'
            })
        });

        var oPage = new sap.m.Page({
            title: "Apps",
            content: [oInboxList]
        });

        return oPage;
    }
 });

// apps.json

{
    "items": [{
        "name": "ABC",
        "view": ""
    }, {
        "name": "DEF",
        "view": ""
    }]
}

此视图生成两个空的ListItem。当我将模型更改为未命名的模型并将BindPath更新为/ items时,List将被正确填充并显示值。关于我的编码错误的任何想法?我真的很想使用命名模型。

1 个答案:

答案 0 :(得分:10)

好的,只需重读文档即可。在使用命名模型进行绑定时,必须使用命名模型的名称为所有绑定添加前缀。

oInboxList.bindItems("apps>/items", function(sID, oContext) {
        return new sap.m.StandardListItem({
            title: '{apps>name}',
            description: '{apps>name}'
          })
    });