如何在数组sapui 5中绑定json对象?

时间:2016-03-25 07:10:23

标签: sapui5

我的文件 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

2 个答案:

答案 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}