Связывание динамического контекста в XML

У меня одата идет из бэкэнда. У меня есть два элемента управления для выбора на моей странице SAPUI5. При первом выборе отображается список элементов, полученных от серверной части. Второй выбор изменяется в зависимости от того, что выбрано в первом элементе управления.

Прямо сейчас я строю в контроллере новый путь для выбора "планет". Можно ли изменить путь элементов "планеты" в зависимости от выбранного элемента "звезды" только в XML? Без использования Javascript?

Я бы хотел сделать что-то вроде этого:

<Select id="stars"
    items="{
        path: '/Stars'
    }">
    <core:Item key="{StarID}" text="{StarName}" />
</Select>


<Select id="planets"
    items="{
        path: '("/Stars('" + StarID + "')/toPlanets"'
    }">
    <core:Item text="{PlanetName}" />
</Select>

person Waltari    schedule 28.02.2017    source источник


Ответы (1)


К сожалению, я не верю, что в UI5 есть какие-то существующие функции, позволяющие наивно делать что-то подобное. Единственное, что похоже, - это замена привязки во время предварительной обработки XML, но вы не можете использовать это в своей ситуации.

Я встречал эту ситуацию много раз в прошлом и создал вспомогательный элемент управления для решения этой проблемы (возможно, это не идеальное решение, но оно работает). Подобный подход имеет смысл использовать только в том случае, если у вас есть такая конструкция в нескольких местах (чтобы избежать использования одного и того же шаблонного кода в ваших JS-контроллерах).

Вы можете найти здесь пример реализации такой элемент управления и здесь пример использования. По сути, это позволяет вам иметь механизм многократного использования для выполнения такой «косвенной привязки», не прибегая к прослушивателям событий.

person Serban Petrescu    schedule 28.02.2017