首页 > 解决方案 > 从 odata v2 迁移到 v4 时缺少方法

问题描述

我正在尝试为我当前使用 odata v2 的主详细信息应用程序实现 odata v4。

在我的应用程序中,我使用了一些类似这样的语句。

this.getOwnerComponent().getModel().metadataLoaded().then(fnSetAppNotBusy);

var oContext = this.getModel().createEntry(sPath, {
    properties: {
           Name: "ABC",
           Age: "20"
        },
    success: this._fnEntityCreated.bind(this),
        error: this._fnEntityCreationFailed.bind(this)
});

我在本文档中看到与 OData V2 模型相比的变化,odata v4 已将 metadataLoaded 替换为“相应的方法”。

在此处输入图像描述

我已经搜索并找到了一些,但不确定这些方法是否正确。有人可以确认吗?

在此处输入图像描述

而且我在 oDataModel v4 中找不到方法 createEntry,那么如何实现与 odata v2 相同的逻辑呢?

谢谢

标签: odatasapui5

解决方案


唔。此示例涵盖了创建过程:

https://sapui5.hana.ondemand.com/sdk/#/sample/sap.ui.core.tutorial.odatav4.06/code

(基本上,您在绑定/上下文级别执行创建)

至于onMetadataLoaded,您可以使用getMetaModel()然后使用带有承诺的“适当”功能,但我会这样做:抓住您的绑定,这是您正在等待的绑定,并附加到事件dataReceived。例如,

oTable.getBinding('items').attachEvent('dataReceived', function(){...})

API 文档明确声明此事件将用于繁忙指标:

https://sapui5.hana.ondemand.com/sdk/#/api/sap.ui.model.odata.v4.ODataListBinding/events/dataReceived


推荐阅读