【发布时间】:2021-04-02 12:51:39
【问题描述】:
我正在使用 $expand 参数调用 oData v2 服务,因此 url 如下所示:
https://host/odata/v2/myEntity?$expand=key4
我返回一个 oData json 对象,如下所示:
{
"d": {
"results": [
{
"key1": "val1",
"key2": "val2",
"key3": "val3",
"key4": {
"results": [
{
"key5": "val5",
"key6": "val6",
"key7": "val7"
}
]
}
}
]
}
}
收到 oData 对象后,在我的 controller.js 中我创建一个 JSONModel 对象,像这样并将它分配给 viewModel:
var oJson = new sap.ui.model.json.JSONModel(oData);
this.getView().byId("tableId").setModel(oJson, "myModel");
接下来,在我的 View.xml 中,我有一个 ID 为“tableId”的表,它绑定了这个 myModel:
<Table id="tableId" items="{path: 'myModel>/results' }">
通过以上操作,我可以通过以下方式检索表中 key1、key2 和 key3 的值:
<Text text="{myModel>key1}" />
但我无法获取 key4 下的结果数组的值来访问 key5、key6 和 key7。请问我该如何实现?
【问题讨论】:
-
您希望如何显示
key4值?如您所见,它是一个集合。 IE。你需要另一个聚合绑定。目前尚不清楚“获取值”的确切含义。 -
顺便说一句:如果您正在处理 OData,则不需要 JSONModel。只需绑定现有的 ODataModel。不要不要使用
.read。 -
您好 Boghyon,感谢您的 cmets,我已经编辑了我的问题以添加一些说明。您提到了聚合绑定。如何将 key4 下所有内容的值绑定到同一张表?
标签: javascript json odata sapui5