我在控制器的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}
问题是为什么我无法获取模型的数据?
答案 0 :(得分:1)
我得到了它的工作。检查此链接是否有用Example
var oSelectedFields = sap.ui.getCore().getModel("selectedFieldsCounter").getData();
console.log(oSelectedFields);//(2)
oSelectedFields.counter++;
我已经完成了一个简单的按钮,我可以在其中检索模型数据并将其打印到控制台中。
您可以使用此代码并使其适用于您。否则,您可以添加需要进一步检查的失败代码
我认为你会使用双向绑定,因此模型会被某些动作改变。
答案 1 :(得分:0)
我在模型声明中遇到了可变干扰错误。
在模型声明之后,我声明了另一个带有空对象的模型。
错误地,我将该空对象分配给第一个模型。