1
我正在寫一個Sencha Touch 2應用程序。我最近陷入了以下問題。從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'的容器,但在這種情況下,我無法在其中放置一個按鈕,這可以從控制器查詢。有任何想法嗎?
Thx,提前。