我是SAPUI5的新手,我非常需要你的帮助。
我创建了一个XML视图,并将OData模型绑定到它,如下所示。现在视图中的所有控件都绑定了,我能够看到数据。
this.getView().setModel(oModel);
现在我有一个要求,我必须从视图中完全删除此绑定。我销毁了oModel并删除了所有绑定。现在,当我刷新视图时,数据仍然存在于屏幕中。我希望视图中的所有数据都消失。
oModel.destroy();
oModel.refresh();
this.getView().getModel().refresh(true);
答案 0 :(得分:1)
我假设你使用sap.ui.model.odata.ODataModel
来检索odata,然后使用例如JSON模型完成绑定,就像这样,
var oJson = new sap.ui.model.json.JSONModel({data : oData);
/* Here 'data' is any name that you provide to identify your data model,
'oData' is the data that is received as response from the sap.ui.model.odata.ODataModel */
并将此模型设置为您提到的视图,
this.getView().setModel();
现在,要从视图中删除此数据,您可以尝试以下操作,
oJson.setData({data : null}, true);
这会将先前设置的oData
设置为null
,因此将删除视图中控件的所有数据绑定(更改为null)。
我相信oJson.refresh()
是可选的,但如果未反映更改,您也可以尝试添加。
这是一种方法,直到你找到更好的东西:) Here是我用过的API的文档。
答案 1 :(得分:0)
如果您正在使用
var dataModel = new sap.ui.model.json.JSONModel();
dataModel.setData(oDataResponse); //Data returned from oData.Read()
this.getView().setModel(dataModel, "dataModel");
检索模型,将模型设置为null,更新绑定
var dataModel = this.getView().getModel("dataModel");
if(dataModel){
dataModel.setData(null);
dataModel.updateBindings(true);
}