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

ui5 OData V4 - How to create entity from Form with custom updateGroupId

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

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

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

也许这是错误的做法。有没有人知道 solution/example 在不使用 OData V4 进行聚合绑定的情况下创建新实体?

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

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);