Набор сущностей OData не доступен в SAPUI5 - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь получить некоторые данные из серверной части, и у меня есть следующий код:

Я определил службу oData в manifest.json:

"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 +, для подузла 2 вместо этого я вижу __defereed: с каким-то сверхъестественным URI позади, может быть, кто-то знает, чего здесь не хватает?

1 Ответ

0 голосов
/ 31 августа 2018

Я нашел способ сделать это, я думаю, что это может быть полезно для других, если бы это помогло тебе дать маме +1:)

Я связываю Список, я буду использовать метаданные, непосредственно делая это:

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

Между прочим: очень важно, чтобы между subNode1 и subNode2 не было пробела, есть только запятая, которая разделяет оба, потраченные впустую пару минут, потому что я использовал пробел после запятой.

...