2015-04-21 4 views
2

Я написал эту часть, чтобы связать информацию OData с выбором контроллером:Выполнить действие после того, как вязка Полной

var countrItems = new sap.ui.core.ListItem(); 
countrItems.bindProperty("key", "Land1"); 
countrItems.bindProperty("text", "Landx"); 
var CountrSelect = this.byId("CountrySelect"); 
CountrSelect.setModel(oModelTriptab); 
CountrSelect.bindItems("/Countries", countrItems); 

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

ответ

3

Используйте обработчик события requestCompleted для выполнения любых действий, которые должны произойти сразу после обновления данных модели.

Само связывание должно быть довольно статичным (т.е. она не изменится), поэтому you'r заинтересованы только в том, когда данные изменяются


редактировать вот пример implemantation:

var that = this; 
oModelTriptab.attachRequestCompleted(function(oEvent){ 
    var oSelect = that.byId("CountrySelect"); 
    oSelect.setSelectedKey("whatever"); 
}); 

См. https://openui5.hana.ondemand.com/docs/api/symbols/sap.ui.model.Model.html#attachRequestCompleted для получения дополнительной информации

1

Прикрепите обработчики к событиям ред Binding:

items="{ 
    path: '/Countries', 
    events: { 
    dataRequested: '.onCountriesRequested', 
    dataReceived: '.onCountriesReceived', 
    change: '.onCountriesChange' 
    } 
}" 

Эти события могут быть применены не только ListBinding, но и для всех привязок (Примечание: PropertyBinding doesn't send any requests). В вашем случае вы должны приложить обработчик либо к change, либо к dataReceived событиям, чтобы получить уведомление о «полной» привязке.

По сравнению с прикреплением обработчика к requestCompleted, вышеупомянутый подход более наглядный и, самое главное, специфичный для привязки.

Смежные вопросы