我看到一些Ext的例子(现在无法再找到它),应该可以像在下面的push函数中那样为视图提供参数。如果在Sencha 2中也可以这样做,我该如何在视图中检索该值?
var saveResponse = account.save({
success: function(model, operation) {
console.log('The Account was created, response: '+model);
loginview.push({
xtype: 'adultmenulist',
adult: model
});
},
failure: function(model, operation) {
....
}
});
答案 0 :(得分:2)
我通常在自定义对象中创建一个名为updateWithRecord
的函数。每当我按下对象时,我都会调用此方法,然后继续推送它:
var record = Ext.create('MyApp.model.Adult', { firstName: 'Thomas', lastName: 'Vervik' });
this.getAdultMenuList().updateWithRecord(record);
this.getNav().push(this.getAdultMenuList());
注意我如何在我的detailpage和NavigationView中使用MVC ref:
refs: {
nav: {
selector: 'mainnavigation',
xtype: 'mainnavigation',
autoCreate: true
},
adultMenuList: {
selector: 'adultmenulist',
xtype: 'adultmenulist',
autoCreate: true
}
}
我的页面看起来像这样:
Ext.define('MyApp.view.AdultMenuList, {
extend: 'Ext.Container',
config: {
items: [
{ xtype: 'label', name: 'firstName' }, { xtype: 'label', name: 'lastName' }
]
},
updateWithRecord: function(record) {
this.down('label[name="firstName"]').setHtml(record.get('firstName'));
this.down('label[name="lastName"]').setHtml(record.get('lastName'));
}
});
答案 1 :(得分:0)
在任何控制器中,您只需要创建一个参考视图:
refs: {
adultMenuList:'adultmenulist'
}
然后,您可以在控制器中的任何位置执行以下操作:
this.getAdultMenuList().getAdult();
为此,adultmenulist
需要添加在其配置中定义的adult
参数:
Ext.define('MyApp.view.AdultMenuList, {
extend: 'Ext.Container',
config: {
...
adult:null
}
});
希望这有帮助