SAPUI5 - 删除绑定到视图的oData模型

时间:2014-12-24 05:54:21

标签: sapui5

我是SAPUI5的新手,我非常需要你的帮助。

我创建了一个XML视图,并将OData模型绑定到它,如下所示。现在视图中的所有控件都绑定了,我能够看到数据。

this.getView().setModel(oModel);

现在我有一个要求,我必须从视图中完全删除此绑定。我销毁了oModel并删除了所有绑定。现在,当我刷新视图时,数据仍然存在于屏幕中。我希望视图中的所有数据都消失。

oModel.destroy();
oModel.refresh();
this.getView().getModel().refresh(true);

2 个答案:

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