我正在尝试从后端获取一些数据,并且我有以下代码:
我在manifest.json
中定义了oData服务:
"DummyName": {
"type": "sap.ui.model.odata.v2.ODataModel",
"settings": {
"defaultBindingMode": "TwoWay",
"defaultCountMode": "Request",
"sequentializeRequests": true
},
"dataSource": "C_VIEW",
"preload": true
}
}
并且我的控制器中包含以下代码:
var oModel = this.getView().getModel("DummyName");
我检索了服务,然后可以执行以下操作:
我将获得父节点的路径,并将其保存在变量sPath
中。
var sPath = this.getPath();
现在,父节点基本上有两个子节点,我可以像下面这样展开:
var subnode1 = oModel.getProperty("/" + sPath + '/subNode1');
到目前为止,这很好用,如果我对subNode2做同样的操作,那是行不通的:
var subnode2 = oModel.getProperty("/" + sPath + '/subNode2');
变量subnode2将保持未定义状态,我在控制台中检查了oModel并看到了一些奇怪的行为:
对于该子节点1,我将看到一个___list:
我可以打开并找到可以使用sPath +扩展检索的确切子节点,对于subnode2,我看到的是__defereed:
,后面带有一些超级奇怪的URI,也许有人知道这里缺少什么?
答案 0 :(得分:0)
我找到了一种方法,我认为这可能对其他人有帮助,如果这可以帮助您给ma +1:)
我绑定列表,我将直接使用元数据:
<List id="myListId" class="sapUiResponsiveMargin" width="auto"
items="{
path: 'Alias>/I_CdsView',
parameters: {expand: 'subNode1,subNode2'},
}]
}"
>
顺便说一句:在subNode1和subNode2之间没有空格是非常重要的,因为只有逗号将两者分开,在那也浪费了几分钟,因为我在逗号后面使用了空格。