ui5 OData V4-如何使用自定义updateGroupId从表单创建实体

时间:2018-12-07 11:04:40

标签: sapui5 odata-v4

我想使用表单添加新实体,并在填写所有数据后将其保存。因为此对象很复杂,所以我不想直接在列表中填充数据。

使用OData V4时,我发现创建新实体的唯一方法是使用sap.ui.model.odata.v4.ODataListBinding上的Create方法。 example from openUI5 documentation

不幸的是,我无法从其他视图甚至同一视图上的Form绑定到此创建的实体。

也许这是错误的方法。没有人知道在不使用OData V4进行聚合绑定的情况下创建新实体的任何解决方案/示例吗?

1 个答案:

答案 0 :(得分:0)

我针对此问题的解决方案是在控制器中创建列表出价,如下所示:

var oItemTemplate = new sap.m.ColumnListItem();
this._oBindList = new sap.m.List({
            items: {
                path: "/somePath",
                parameters: {
                    $$operationMode: "Server",
                    $$updateGroupId: "SOME_GROUP"
                },
                length: 1,
                template: oItemTemplate
            }
        });
this.getView().addDependent(this._oBindList);

然后我将具有适当结构的JSONModel绑定到View。当用户单击“添加”时,我仅在此列表上调用Create方法,并与JSONModel中的数据绑定

var newData = this.getView().getModel("ModelName").getData();
var oJsonData = JSON.parse(newData);
var oBinding = this._oBindList.getBinding("items");

oBinding.create(oJsonData);