2017-01-25 10 views
-1

У меня есть два вида. View1 и View2. Я использую View1 для получения параметров из поля ввода и отображения данных в View2 на основе этих параметров. Теперь я подумал, как передавать данные среди просмотров. Кто-нибудь, пожалуйста, дайте мне понять, и с рабочим кодом, и что каждая строка делает?Передача данных между представлениями XML в SAP UI5

Благодаря

+0

Возможная дубликат [SAPUI5: Передача данных между контроллерами при навигации (в дополнение к параметрам маршрутизации)] (https://stackoverflow.com/questions/48831967/sapui5- ближние данные между прод- rollers-while-navigating-in-addition-to-routin) – boghyon

ответ

0

Например, если у вас есть поле ввода в View1.view.xml как это:

<Input id="id" value="Initial Value" editable="true" /> 

вы можете получить значение поля в соответствующем контроллере сказать, View1_cont.controller.js и установите модель, которую позже можно получить в любом другом контроллере.

var oData = { 
    input: this.getView().byId("id").getValue() 
}; 
var oModel = new sap.ui.model.json.JSONModel(oData); 
sap.ui.getCore().setModel(oModel,"modelName"); 

В настоящее время в контроллере второй точки зрения, скажет View2_cont.controller.js, значения могут быть извлечены и вид элемент с идентификатором «текстом» установлен, как показано ниже:

var oData = sap.ui.getCore().getModel("modelName").getData(); 
this.getView().byId("text").setValue(oData.input); 

Текста элемент View2.view.xml является:

<Text id="text"/> 
+0

Что делать, если у меня есть несколько полей ввода? Какие изменения я внес в var oData, чтобы добавить их? Извините, я немного слаб в JS. И большое спасибо за ответ. –

+0

var oData = { input1: this.getView(). ById ("id1"). GetValue(), input2: this.getView(). ById ("id2"). GetValue(), input3: this.getView () .byId ("id3"). getValue() }; и так далее! Надеюсь это поможет. –

+0

Да, догадался, извините за ленивость! Большое спасибо. :) –