我想更新一个用 OData svc 填充的表。我正在使用这种方法:
oModel.update("/Products(999)", oData, {
success: mySuccessHandler,
error: myErrorHandler
});
Run Code Online (Sandbox Code Playgroud)
我在变量中有选定的索引,我需要传递该变量。问题是Products(999)
- 这是使用硬编码行,但如何用变量替换?
通过createKey
来自 ODataModel的 API 动态创建路径:
const path = myODataModel.createKey("/Products", {
ProductID: 999, // your dynamic key value
AnotherKeyProperty: "...",
});
myODataModel.update(path /*,...*/);
Run Code Online (Sandbox Code Playgroud)
与手动连接路径的字符串相比,createKey
具有以下优点:
ODataUtils.formatValue
内部使用)。例如:如果ProductID
有 type Edm.Int64
,UI5 会"l"
在输出字符串中附加与OData 规范对齐的字符:"999"
?"999l"
encodeURIComponent
api)。例如: ProductID='sp ace'
?ProductID='sp%20ace'
由于createKey
依赖于来自服务元数据的信息,因此应在$metadata
加载后执行 API 。为此,可以使用基于承诺的 APImetadataLoaded
。
myODataModel.metadataLoaded().then(/*createKey*/);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4538 次 |
最近记录: |