Динамическое связывание данных SAPUI5 (ключ для OData-Service) - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь подключить приложение UI5 к службе OData.

Для привязки я использую привязку данных (odataModel - моя OData-служба):

<Text text="{odataModel>/UserSet('MyUsername')/UserName}"/>

Теперь я хочу заменить строку «MyUsername» в XML, поэтому я использую другую модель. Поэтому я попробовал следующее:

<Text text="{odataModel>/UserSet('${userModel>/user}')/UserName}"/>

Как мне вставить переменную в мою привязку?

Привет

1 Ответ

0 голосов
/ 06 июля 2018

Вам необходимо выполнить привязку элемента и установить контекст из контроллера для элемента управления или контейнера, который вы хотите. Просто установите привязку в относительном представлении (без косой черты в начале) на узел "/ UserSet ('MyUsername')" и присвойте идентификатор элементу управления или контейнеру, где вы хотите выполнить ElementBinding. Например:

<Text id="myText" text="{odataModel>UserName}"/>

Затем из контроллера вы можете выполнить ElementBinding всякий раз, когда у вас есть строка имени пользователя, например:

onInit(){
   var sUsername = this.getView().getModel("userModel").getProperty("user"); // This is your username coming from your "userModel"
   var sModelNodeAbsolutePath = "odataModel>/UserSet("+ sUsername +")"; // This is the absolute path to the node for this user, the path in the view will be relative to this node
   this.getView().byId("myText").bindElement(sModelNodeAbsolutePath);
}
...