Sencha touch 2 如何在视图中指定要查看和检索的参数
我看到了一些Ext的例子(现在找不到了),它应该可以像我下面在push函数中所做的那样为视图提供参数。如果Sencha 2中也可以这样做,那么如何在视图中检索该值Sencha touch 2 如何在视图中指定要查看和检索的参数,sencha-touch-2,Sencha Touch 2,我看到了一些Ext的例子(现在找不到了),它应该可以像我下面在push函数中所做的那样为视图提供参数。如果Sencha 2中也可以这样做,那么如何在视图中检索该值 var saveResponse = account.save({ success: function(model, operation) { console.log('The Account was created, response: '+model); loginview.pu
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) {
....
}
});
我通常在自定义对象中创建一个名为:
updateWithRecord
的函数。每当我推送对象时,我调用此方法,然后继续这样推送:
var record = Ext.create('MyApp.model.Adult', { firstName: 'Thomas', lastName: 'Vervik' });
this.getAdultMenuList().updateWithRecord(record);
this.getNav().push(this.getAdultMenuList());
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'));
}
});
请注意我是如何在我的detailpage和NavigationView中使用MVC ref的:
refs: {
nav: {
selector: 'mainnavigation',
xtype: 'mainnavigation',
autoCreate: true
},
adultMenuList: {
selector: 'adultmenulist',
xtype: 'adultmenulist',
autoCreate: true
}
}
我的页面看起来像这样:
var record = Ext.create('MyApp.model.Adult', { firstName: 'Thomas', lastName: 'Vervik' });
this.getAdultMenuList().updateWithRecord(record);
this.getNav().push(this.getAdultMenuList());
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'));
}
});
在任意控制器中,只需创建对视图的引用:
refs: {
adultMenuList:'adultmenulist'
}
然后,您可以在控制器中的任何位置执行以下操作:
this.getAdultMenuList().getAdult();
要使其正常工作,您的adultmenulist
需要添加一个在其配置中定义的adultmenulist
参数:
Ext.define('MyApp.view.AdultMenuList, {
extend: 'Ext.Container',
config: {
...
adult:null
}
});
希望这有帮助啊,酷!正是我想要的,给你50分,谢谢你的帮助谢谢,如果你看一下文档,你会发现NavigationView的push方法实际上返回了对象。因此,您应该能够在1行中创建和更新视图:
this.getNav().push(this.getAdultMenuList()).updateWithValues(记录)代码>注意:从未测试过这个。在这里,它看起来像是从值中重试一个值?我想给视图一个可以加载的“参数”。我从您的示例中了解到,您可以使用这个.getAdultMenuList().set成人(成人),然后它将在视图中可用,但是不能在尚未创建的视图上使用组件查询,因为它之前没有创建:loginview.push({xtype:'adultmenulist',成人:model});那么,首先创建视图,然后更新它,最后像Rob说的那样推送它,或者根据成人值使用视图上的初始化事件来更新它。