SAPUI5:如何在运行时设置服务url参数?

SAPUI5:如何在运行时设置服务url参数?,sapui5,Sapui5,我有一个OData服务,它是在manifest.json 在某些服务中,我需要传递一些url参数,如?$expand=XYZ 所以问题是,当OData模型由组件类创建时,如何在运行时而不是在manifest.json中设置serviceUrlParams。希望这会有所帮助 var oModel = sap.ui.getCore().getModel(); oModel.read("/entityset?$expand=" + dynamicValue,mParameters); 对于展开url

我有一个OData服务,它是在
manifest.json

在某些服务中,我需要传递一些url参数,如
?$expand=XYZ

所以问题是,当OData模型由组件类创建时,如何在运行时而不是在
manifest.json
中设置
serviceUrlParams

希望这会有所帮助

var oModel = sap.ui.getCore().getModel();
oModel.read("/entityset?$expand=" + dynamicValue,mParameters);

对于展开url数据,请使用read函数的第二个参数

oDataModel.read("/yourEntitySet", {
    success:jQuery.proxy(this._yourSuccessCallback, this),
    urlParameters: {
        "$expand": "YourExpandData"
    },
    error: jQuery.proxy(this._yourErrorCallback, this)
});

似乎存在一种误解,即
$expand
等参数属于
serviceUrlParams
。不,我们需要区分

  • 元数据URL参数:
    metadataUrlParams
    在模型定义中。这些参数将仅附加到模型实例化时的
    $metadata
    请求
  • 服务URL参数:
    serviceUrlParams
    在模型定义中。这些参数将附加到所有请求
  • 数据URL参数:
    • 绑定定义(通常在视图中)中的参数为,或
    • 模型API中的
      urlParameters
      ,例如
      read
      as
对于
$expand
,数据请求参数是您必须在每个需要的绑定定义中定义的参数。然后,将按需加载相应的数据


API参考:

文档:

I已测试。问题是sapui5从路径中删除$expand。@Martin@Sriram:为了能够在read方法中使用
expand
,您可以使用并传递
“$expand”:“ToXYZ”
。是我的答案,使用“展开阅读”。可能重复