[英]How to create entry for 2 or more entity sets via OdataModel.create in UI5
[英]How to Create Entity Path Dynamically in UI5?
我想更新一个用OData svc填充的表。 我正在使用这种方法:
oModel.update("/Products(999)", oData, {
success: mySuccessHandler,
error: myErrorHandler
});
我在变量中有选定的索引,我需要传递该变量。 问题是Products(999)
-这适用于硬编码行,但是如何用变量替换?
通过ODataModel中的API createKey
动态创建路径:
const path = myODataModel.createKey("/Products", {
ProductID: 999, // your dynamic key value
AnotherKeyProperty: "...",
});
myODataModel.update(path /*,...*/);
与手动串联路径的字符串相比, createKey
具有以下优点:
ODataUtils.formatValue
)。 例如:如果ProductID
的类型为Edm.Int64
,则UI5在输出字符串中附加字符"l"
,以符合OData规范 : "999"
→ "999l"
encodeURIComponent
api )。 例如: ProductID='sp ace'
→ ProductID='sp%20ace'
由于createKey
依赖于服务元数据中的信息,因此应该在$metadata
加载后执行API。 为此,可以使用基于承诺的API metadataLoaded
。
myODataModel.metadataLoaded().then(/*createKey*/);
使用javascript串联运算符+
将变量的值合并到url字符串中:
var sIndex = "123";
oModel.update("/Products(" + sIndex + ")", oData, {success: mySuccessHandler, error: myErrorHandler});
顺便说一句:数字类型在此自动转换为字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.