Я пишу приложение Sencha Touch 2.Недавно я застрял со следующей проблемой.
У меня есть представление «Контейнер», к которому привязаны данные с помощью setRecord (myRecord).Поэтому мой вопрос заключается в том, как правильно заполнить мои подкомпоненты этими данными?
Вот мой код (упрощенный для краткости):
Ext.define('MyApp.model.Item', {
extend: 'Ext.data.Model',
config: {
fields: ['name', 'description', 'image'],
proxy: { /* proxy config */ }
}
});
Ext.define('MyApp.view.DetailsView', {
extend: 'Ext.Container',
xtype: 'itemdetails',
config: {
layout: 'hbox',
items: [
{
xtype: 'container',
flex: 1,
layout: 'vbox',
items: [
{
xtype: 'img',
src: '' // SHOULD BE POPULATED FROM DATA.image
},
{
xtype: 'button',
text: 'Buy',
action: 'buyItem'
}
]
},
{
flex: 3,
tpl: '<h1>{name}</h1><p>{description}</p>' // SHOULD BE POPULATED FROM DATA
}
]
}
});
А вот код, который заполняет и показываетмой взгляд из контроллера:
Ext.define('Myapp.controller.Main', {
...
refs: {
itemDetails: {
selector: '',
xtype: 'itemdetails',
autoCreate: true
}
}
routes: {
'item/details/:id': 'showItemDetails'
},
...
showItemDetails: function(id) {
MyApp.model.Item.load(id, {
callback: function(item){
var card = this.getItemDetails();
card.setRecord(item);
this._showCard(card);
},
scope: this
});
}
});
Сначала я реализовал его с помощью простого контейнера, содержащего 'tpl', но в этом случае у меня не было возможности разместить внутри него кнопку, которую можно было бы запросить изконтроллер.Есть идеи?
Спасибо, заранее.