ODataModel 在读取中传递“扩展”参数

Mah*_*ami 4 odata sapui5

我想将 expand 参数传递给,read因为如果我像这样调用服务它不起作用:

oModel1.read("/LinesSet?$expand=ToCells", {
Run Code Online (Sandbox Code Playgroud)

Bog*_*ann 14

readAPI预计地图选项中,我们可以使用属性定义的任何查询第二个参数urlParameters

oModel1.read("/LinesSet", {
  urlParameters: {
    "$expand": "ToCells"
  },
  success: this.onSuccess.bind(this),
  // ...
});
Run Code Online (Sandbox Code Playgroud)

urlParameters:包含将作为查询字符串传递的参数的映射

只是不要忘记包括$beforeexpand以表明它是一个系统查询。否则,它将被视为自定义查询


替代(更好)解决方案

我想提到的是,这myODataModel.read通常不是必需的。您可以通过<NavigationProperty>为 XML 中的控件分配相应的名称来简单地使用 OData 上下文/列表绑定:

<Table binding="{ToThatRelatedSingleEntity}" items="{ToThatRelatedCollection}">
Run Code Online (Sandbox Code Playgroud)

注意:您可能必须templateShareable按照主题:绑定模板的生命周期中的说明相应地添加到聚合绑定中)

然后绑定而不是模型会自动为您发送请求。无需使用中间 JSONModel。与v4.ODataModelwhich 甚至没有read方法相同。
这也使得在应用程序中更容易迁移到 V4 模型。

告诉框架你想要什么