2013-05-06 59 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錯誤。

相關問題