Я пробовал разные вещи, но мне не удалось передать данные с контроллера для просмотра (компоненту внутри контейнера).Я не могу передать данные с контроллера на представление в Sencha Touch 2.4
Здесь у меня есть мнение ServisDetail.js:
Ext.define('Asistan.view.ServisDetail', {
extend: 'Ext.Container',
xtype: 'servisDetail',
config: {
layout: 'fit',
items : [
{
xclass : 'Asistan.view.ServisToolbar'
},
{
// "data: {}" is needed to work. I try to pass data from controller to here
xtype: 'component',
tpl: Ext.create('Ext.XTemplate','{URUN_CIHAZ_ADI} jkjk')
}
]
}
});
А вот мой контроллер Servis.js, который я думаю, подумал, что это должно работать. Но он не передает данные:
Ext.define('Asistan.controller.Servis', {
extend: 'Ext.app.Controller',
config: {
refs: {
servis: 'servisNavigationView servisContainer list',
},
control: {
servis: {
itemdoubletap: 'showServis'
}
}
},
showServis: function(item, index, e, eOpts) {
this.servis = Ext.widget('servisDetail');
this.servis.config.items[1].data = eOpts.data; // <- Here! It doesn't work. console.log shows that the data is there but in the browser the data doesn't show up.
console.log(this.servis.config.items[1].data); // I can see my data here, right before the push
item.up('servisNavigationView').push(this.servis);
}
});
Что мне не хватает?
Ваш код передает данные в контейнер, а не к компоненту с 'tpl'. – ilhan
Вам следует избегать использования Ext.getCmp() в приложении Sencha Touch. У вас возникнут проблемы, если на вашей странице есть несколько экземпляров вашего компонента. Вместо этого используйте методы Ext.ComponentQuery. –
Я бы предпочел использовать itemId вместо id, чтобы вы могли разрушать представления и воссоздавать их. – Dinkheller