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) {
          ....
      }
});
4

2 回答 2

2

我通常在我的自定义对象中创建一个函数,称为:updateWithRecord. 每当我推送对象时,我都会调用此方法,然后像这样继续推送它:

var record = Ext.create('MyApp.model.Adult', { firstName: 'Thomas', lastName: 'Vervik' });
this.getAdultMenuList().updateWithRecord(record);
this.getNav().push(this.getAdultMenuList());

请注意我如何将 MVC 引用用于我的详细信息页面和 NavigationView:

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'));
    }    
});
于 2012-08-20T15:13:08.187 回答
0

在您的任何控制器中,您只需要创建对您的视图的引用:

refs: {
    adultMenuList:'adultmenulist'
}

然后,无论您想在控制器中的哪个位置,您都可以执行以下操作:

this.getAdultMenuList().getAdult();

为此,您adultmenulist需要添加adult在其配置中定义的参数:

Ext.define('MyApp.view.AdultMenuList, {
  extend: 'Ext.Container',
  config: {
    ...
    adult:null
  }    
});

希望这有帮助

于 2012-08-20T21:06:56.527 回答