Привязать ассоциацию OData «один ко многим» к агрегации в UI5 - PullRequest
1 голос
/ 10 ноября 2019

Я читаю некоторые данные из службы OData. Внутри контроллера я делаю следующее:

this.getView().bindElement({
  path: "/HeaderData(key1='key1',key2='key2')",
  parameters: { expand: 'toItems' }
});

Данные считываются правильно, и модель в консоли выглядит так:

HeaderData(key1='key1',key2='key2'): {
  HeaderField1: "value1"
  HeaderField2: "value2"
  toItems: {__list: Array(2)}
}

Теперь яхотите связать записи в коллекции "toItems" с таблицей. Я пробовал следующее, но это не работает, потому что "toItems" - это коллекция.

<Table items="{
  path: '/HeaderData',
  parameters: { expand: 'toItems' }
}">

Этот также не работает:

<Table items="{
  path: '/HeaderData/toItems'
}">

Как правильно связать элементы? К таблице невозможно получить доступ по идентификатору, поэтому привязка должна быть в представлении XML.

1 Ответ

0 голосов
/ 10 ноября 2019

Просто свяжите свойство навигации с агрегацией:

<Table items="{toItems}">

Убедитесь, что в начале пути привязки пропущено /, так как оно должно быть разрешено относительно длясвязанный объект / контекст (который был дан bindElement). Чтобы узнать больше, см. Тему Путь привязки .

Затем ODataListBinding отправит запрос соответствующим элементам, если они еще не доступны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...