我的文件 controller.js ,
现在想要使用sapui 5在数组中绑定json对象。我正在尝试下面的代码。
onInit: function() {
var elementArray=['ID','Name','Description','ReleaseDate','DiscontinuedDate','Rating','Price'];
var oModel = new sap.ui.model.json.JSONModel(elementArray);
sap.ui.getCore().setModel(oModel,'fieldArray');
// var oModel = new sap.ui.model.json.JSONModel('./smartappall/door.josn');
// sap.ui.getCore().setModel(oModel,'approcords');
},
view.js
var elementArray= bind fieldArray json model here
答案 0 :(得分:2)
我不确定您要实现的目标,但由于您的模型仅包含数组,因此您可以在视图中执行以下操作:
var elementArray = sap.ui.getCore().getModel("fieldArray").getData();
(编辑:忘记了getData()
部分......)
但通常,您不会在专用模型中存储对象或数组,而是使用一个模型将它们存储在单独的属性中。在这种情况下,你可以这样做:
在控制器中:
sap.ui.getCore().getModel("fieldArray").setProperty("/pathToYourArray", elementArray");
在视图中:
var elementArray = sap.ui.getCore().getModel("fieldArray").getProperty("/pathToYourArray");
答案 1 :(得分:0)
JSONModel数据必须是普通的javascript对象。 IE不是一个javascript数组。
您可以按照上一个答案将数组设置为JSONModel的属性,也可以修改初始数组以将其包装在对象中:
onInit: function() {
var data = { elementArray: [
'ID',
'Name',
'Description',
'ReleaseDate',
'DiscontinuedDate',
'Rating',
'Price'
]};
var oModel = new sap.ui.model.json.JSONModel(data);
sap.ui.getCore().setModel(oModel,'fieldArray');
},
然后,您可以将视图绑定到{fieldArray> / elementArray}