2013-05-06 60 views
0

我试图在我的应用程序中添加导航。我在我的应用程序中定义了一些控制器,所以我可以通过this.getApplication().getController('SomeController')与他们联系。我想在我的navigationView中推送SomeController的视图实例。这工作正常使用push({xtype: 'someView'}),但在我的控制器,如果我试图改变我的看法,它说它是未定义的。将控制器的视图实例推送到NavigationView

我认为这是因为我推送的视图与我的控制器不一样。这里是我的控制器的代码示例:

config: { 
    refs: { 
     someView: { 

      selector: '#someView', 
      xtype: 'someView' 
     } 
    }, 
}, 
store: null, 
setStore: function(){ 
//creating store... 
//... 
someView.setStore(this.store); 
} 

这是我的看法:

Ext.define('EpaMobile.view.SomeView', { 
extend: 'Ext.dataview.List', 
alias: 'widget.someView', 
xtype: 'someView', 
requires: ['Ext.field.Search', 'Ext.Toolbar'], 

回答

0

给您的视图控制器引用时被用作选择的itemId。此外aliasxtype是同样的事情,所以只需坚持别名,并删除xtype。所以,你的观点应该是这样的:

Ext.define('EpaMobile.view.SomeView', { 
    extend: 'Ext.dataview.List', 
    alias: 'widget.someView', 
    requires: ['Ext.field.Search', 'Ext.Toolbar'], 
    config: { 
     ... 
     itemId: 'someViewItemId',   
     ... 
    } 

    ... 
} 

最后修改ref块这样的:

... 
refs: { 
    someView: { 
     selector: '#someViewItemId', 
     xtype: 'someView', 
     autoCreate: true 
    } 
}, 
... 

您现在应该能够使用push({xtype: 'someView'})没有得到undefined错误。

相关问题