我想使用表单添加新实体,并在填写所有数据后将其保存。因为此对象很复杂,所以我不想直接在列表中填充数据。
使用OData V4时,我发现创建新实体的唯一方法是使用sap.ui.model.odata.v4.ODataListBinding上的Create方法。 example from openUI5 documentation
不幸的是,我无法从其他视图甚至同一视图上的Form绑定到此创建的实体。
也许这是错误的方法。没有人知道在不使用OData V4进行聚合绑定的情况下创建新实体的任何解决方案/示例吗?
答案 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);