Sencha touch 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

我看到了一些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) {
          ....
      }
});

我通常在自定义对象中创建一个名为:
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说的那样推送它,或者根据成人值使用视图上的初始化事件来更新它。