无法在SAPUI5中检索OData实体集

时间:2018-08-30 07:00:41

标签: odata sapui5

我正在尝试从后端获取一些数据,并且我有以下代码:

我在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,也许有人知道这里缺少什么?

1 个答案:

答案 0 :(得分:0)

我找到了一种方法,我认为这可能对其他人有帮助,如果这可以帮助您给ma +1:)

我绑定列表,我将直接使用元数据:

<List id="myListId" class="sapUiResponsiveMargin" width="auto" 
            items="{
                path: 'Alias>/I_CdsView',
                parameters: {expand: 'subNode1,subNode2'},
                }]
            }"
        >

顺便说一句:在subNode1和subNode2之间没有空格是非常重要的,因为只有逗号将两者分开,在那也浪费了几分钟,因为我在逗号后面使用了空格。