[英]ui5 OData V4 - How to create entity from Form with custom updateGroupId
我想使用表单添加新实体并在填写所有必需数据后保存它。 因为这个对象很复杂,所以我不想直接在列表中填充数据。
我发现在使用 OData V4 时创建新实体的唯一方法是使用 sap.ui.model.odata.v4.ODataListBinding 上的 Create 方法。 来自 openUI5 文档的示例
不幸的是,我无法从同一视图上的其他视图甚至表单绑定到这个创建的实体。
也许这是错误的做法。 有人知道在没有与 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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.