如何在视图中查看和检索参数

时间:2012-07-29 00:21:47

标签: sencha-touch-2

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

2 个答案:

答案 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
  }    
});

希望这有帮助