无法获取模型的数据

时间:2015-10-02 18:52:29

标签: sapui5

我在控制器的onInit()函数中定义了json模型:

var oSelectedFields = {};
oSelectedFields.counter = 0;
var oSelectedFieldsModel = new sap.ui.model.json.JSONModel();
oSelectedFieldsModel.setData(oSelectedFields);
sap.ui.getCore().setModel(oSelectedFieldsModel, "selectedFieldsCounter");
console.log("oninit(). ",oSelectedFields); //(1)

然后,在我想要获取此模型数据的其中一个函数中,使用它并更新它(该函数在press事件上调用):

function(oEvent){
    var oSelectedFields = sap.ui.getCore().getModel("selectedFieldsCounter").getData();
    console.log(oSelectedFields);//(2)
    oSelectedFields.counter++;
    //rest of the function's code here
}

第(1)行显示oninit(). Object {counter: 0},第(2)行显示Object {}

如果我第二次调用该函数,第(2)行显示Object {counter: NaN}

问题是为什么我无法获取模型的数据?

2 个答案:

答案 0 :(得分:1)

我得到了它的工作。检查此链接是否有用Example

 var oSelectedFields = sap.ui.getCore().getModel("selectedFieldsCounter").getData();
            console.log(oSelectedFields);//(2)
            oSelectedFields.counter++;  

我已经完成了一个简单的按钮,我可以在其中检索模型数据并将其打印到控制台中。
您可以使用此代码并使其适用于您。否则,您可以添加需要进一步检查的失败代码 我认为你会使用双向绑定,因此模型会被某些动作改变。

答案 1 :(得分:0)

我在模型声明中遇到了可变干扰错误。

在模型声明之后,我声明了另一个带有空对象的模型。

错误地,我将该空对象分配给第一个模型。