我想更新一个用 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"encodeURIComponentapi)。例如: ProductID='sp ace'?ProductID='sp%20ace'由于createKey依赖于来自服务元数据的信息,因此应在$metadata加载后执行 API 。为此,可以使用基于承诺的 APImetadataLoaded。
myODataModel.metadataLoaded().then(/*createKey*/);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4538 次 |
| 最近记录: |