【发布时间】:2017-11-16 13:19:38
【问题描述】:
在我的 SAPUI5 应用程序中,我使用 odata v4 模型与服务器通信。我有一个绑定到现有对象的详细视图,如下所示:
// Controller code:
this.getView().bindElement({
path: "/Objects(" + this.m_ObjectId + ")",
model: "modelName"
});
如果我想在该视图中创建一个新项目,当然我不会绑定到现有项目。从the documentation 我看到应该像这样创建新项目:
var oModel = this.getModel("modelName");
var oListBinding = oModel.bindList('/Objects');
var oNewKap = oListBinding.create({
'OBJECT_ID': 0,
'SOME_PROP': 'Test'
});
现在的问题是,如何将新创建的(瞬态)对象绑定到我的视图?如果我做一个
this.getView().bindElement({
path: "/Objects(0)",
model: "modelName"
});
应用将再次尝试从服务器获取现有项目...
感谢任何帮助!
【问题讨论】:
-
嗯,有人愿意为反对票点名吗?
-
您是否尝试过不提供 ID 以便框架可以生成临时 ID?它是 v2.ODataModel 中的“createEntry”……对 v4 不太熟悉。有点奇怪 create 方法只存在于 ListBinding :/
-
谢谢!毕竟我已经尝试过,我不确定我是否在没有 id 的情况下进行了测试。我将在下周尝试,因为我目前没有机会访问该代码。是的:oData v4 支持确实令人困惑。我会保持更新。
-
如何从显示现有项目详细信息的页面创建新项目?从用户体验方面来看,我不明白这有什么意义。
-
我在应用程序中的任何地方使用值 ID=0 的路由(如果需要,甚至作为入口页面)。然后详细信息页面应处理新项目的创建。
标签: data-binding odata sapui5