【问题标题】:SAPUI5 OData model with different metadata URI具有不同元数据 URI 的 SAPUI5 OData 模型
【发布时间】:2015-02-07 04:39:18
【问题描述】:

我正在为表使用 OData 模型,但未加载数据。 OData 模型由构造函数通过以下方式创建:

new sap.ui.model.odata.ODataModel("/XMII/IlluminatorOData/QueryTemplate?QueryTemplate=testTemplate", {annotationURI: "/XMII/IlluminatorOData/$metadata"});

我不能使用 OData 服务的根 URI,因为我需要指定一个 QueryTemplate。

将模型设置为表格后,使用参数“/Row”调用bindRows方法。

table.bindRows("/Row")

列的模板是 TextField。

template: new sap.ui.commons.TextField().bindProperty("value", "PROJECT")

数据没有显示,甚至没有请求。仅获取元数据。我对 OData 模型做错了什么?如果我通过 get 请求获取传递给模型的 URI,则内容可用。

【问题讨论】:

    标签: odata sapui5


    【解决方案1】:

    您确定网址正确吗?

    不应该是“/XMII/IlluminatorOData/?QueryTemplate=testTemplate”之类的东西

    ODataModel 需要加载元数据才能工作,这意味着它从“[ServiceUrl]$metadata”中获取元数据,在您的情况下为“/XMII/IlluminatorOData/QueryTemplate/$metadata”。但是您还使用元数据作为注释源 - 您使用不同的 URL,所以我猜您的第一个是错误的......?

    【讨论】:

    • 我知道它不是 OData 服务的根 URI。因此我设置了正确的元数据 URI,但也许这不是正确的做法。
    • 不,您设置了 annotation-URI,元数据是从我在答案中写的 URL 加载的。注释可以是元数据的一部分,但它们不是必须的 - 在浏览器的开发人员工具中查看网络选项卡,您将看到请求的 URL。
    • 我在 OData 规范中搜索了对元数据 URL 的特定引用,似乎没有,但所有示例都使用 [ServiceURL]/$metadata。 UI5 ODataModel 不支持不同 URL 的元数据 - 它是硬编码的,请参阅 github.com/SAP/openui5/blob/master/src/sap.ui.core/src/sap/ui/…(同样适用于 v1 ODataModel)。
    猜你喜欢
    • 1970-01-01
    • 2017-03-19
    • 2017-10-11
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多