2015-06-06 3 views
3

Я хочу передать параметры из главной страницы к деталям страницы на прессе ListItemКак передать данные с главной страницы на детальную страницу SAPUI5?

handleListItemPress : function (evt) { 

imp = evt.getSource().getTitle(); 
    alert(imp); 

// var mystring = 'this,is,an,example'; 
    var splits = imp.split(","); 


    dino  = splits[0]; //I want to send three parameters 
    revno = splits[1]; 
    uruntipi = splits[2]; 

    var context = evt.getSource().getBindingContext(); 
    this.nav.to("Detail", context); 
}, 

Я хочу, чтобы подробно странице параметров onInit функции.

+0

Возможный дубликат [UI5 - Передача данных между представлениями] (https://stackoverflow.com/questions/34000949/ui5-passing-data-between-views) – boghyon

ответ

4
handleListItemPress: function (evt) { 
    var imp = evt.getSource().getTitle(); //don't declare globals variables 
    // var mystring = 'this,is,an,example'; 
    var splits = imp.split(","); 

    //build json object with all your properties you want to send 
    var context = { 
     dino: splits[0], 
     revno: splits[1], 
     uruntipi = splits[2], 
     bindingContext = evt.getSource().getBindingContext() 
    }; 

    this.oRouter.navTo("Detail", context); 
    //OR sap.ui.core.UIComponent.getRouterFor(this).navTo("Detail", context); 
    //this.nav.to("Detail", context); 
} 

в деталях Страница:

onInit: function() { 
    var oRouter = sap.ui.core.routing.Router.getRouter("appRouter"); 
    //can also use directly this.oRouter.attachRouteMatched(...) 
    oRouter.attachRouteMatched(function (oEvent) { 
     if (oEvent.getParameter("name") !== "detail") { 
      return: 
     } 
     var dino = oEvent.getParameter("arguments").dino; 
     var revno = oEvent.getParameter("arguments").revno; 
     var uruntipi = oEvent.getParameter("arguments").uruntipi; 
     var bindingContext = oEvent.getParameter("arguments").bindingContext; 
    }, this); 
} 

Подробнее здесь Methods and Events for Navigation

+0

Привет Сунил, благодарю вас за ответ, но получите сообщение об ошибке Can not read property 'attachRouteMatched' и не смог решить эту проблему. У вас есть идеи для этого? –

+0

Вы используете строительные леса/Базовый контроллер для шаблона основных деталей? –

+0

Я использую только ваш код. Я сделал что-то для настройки? –

1

Если вы не хотите использовать маршрутизации вы можете использовать шину событий. https://openui5.hana.ondemand.com/docs/api/symbols/sap.ui.core.EventBus.html

В мастер, когда у вас есть Params, чтобы пройти, написать:

this.bus = sap.ui.getCore().getEventBus(); 
this.bus.publish("channel1", "eventA" , { 
       par1: 4324, 
       par2: 23423, 
       par3: 12331 
      }); 

в детали контроллера, в инициализации функции дополнения:

this.bus = sap.ui.getCore().getEventBus(); 
    this.bus.subscribe("channel1", "eventA", this._manageData, this); 

и добавить функцию:

_manageData: function (channel1, eventA, data) { 
    //here data contains par1, par2, par3   
}, 

Но правильный способ использования одних и тех же данных в большем виде - использовать модель (JSONModel ...)

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