阅读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将被正确填充并显示值。关于我的编码错误的任何想法?我真的很想使用命名模型。
答案 0 :(得分:10)
好的,只需重读文档即可。在使用命名模型进行绑定时,必须使用命名模型的名称为所有绑定添加前缀。
oInboxList.bindItems("apps>/items", function(sID, oContext) {
return new sap.m.StandardListItem({
title: '{apps>name}',
description: '{apps>name}'
})
});