使用JSON模型从动态表绑定中删除项目

时间:2018-04-11 05:25:08

标签: sapui5

enter image description here 我从JSON模型中获取数据并将其绑定到我的表上,并为每一行提供了一个删除图标,并尝试通过单击该图标删除该项目,以便从我的JSON模型中删除该项,但不从我的表中删除,那么如何删除它来自我的桌子。

var oModel1 = this.getView().byId("tblOpenAccess").getModel("newModel");
        var oProperty = oModel1.getProperty("/dataProperty");
        var delData = this.getView().byId("tblOpenAccess").getModel("newModel").getProperty("/dataProperty");
        var deleteRecord = oArg.getSource().getBindingContext("newModel").getObject();
        if (length > 1) {
            for (i = 0; i < length; i++) {
                if (delData[i] === deleteRecord) {
                    delData.splice(i,1);
                    oModel1.setProperty("/dataProperty", oProperty);
                    this.getView().byId("tblOpenAccess").getModel("newModel").refresh();
                    break;
                }
            }
        } else {
            MessageToast.show("Sorry it can't Delete");
        }

1 个答案:

答案 0 :(得分:1)

我正在使用辅助数组进行此类操作。

您的比较步骤适合您吗?你正在比较两个对象,对吗?要比较两个对象,只需使用JSON.stringify(obj)

var _helpArray = [];

for (i = 0; i < delData.length; i++) {
  if (JSON.stringify(delData[i]) !== JSON.stringify(deleteRecord)) {
    _helpArray.push(delData[i]);
  }
}
oModel1.setProperty("/dataProperty", _helpArray);

如果您的绑定权限正确,您的表格将不再显示已删除的行。