2013-01-02 44 views
6

如何從視圖中獲取我的應用程序? 例如,考慮我有一個應用程序Boo,並且有一個視圖名爲Boo.view.Foo.List,我想在List的視圖中獲得Boo如何從視圖中獲取應用程序?

編輯:

看到這個代碼,看看線20

Ext.define('Boo.view.Foo.List', { 
    extend: 'Ext.panel.Panel', 
    model: 'Boo.model.FooModel', 
    alias: 'widget.foolist', 
    store: 'FooListStore', 
    initComponent: function() { 
     this.columns = [ 
      { 
       text: "Hello world", 
       dataIndex: 'Time', 
       flex: 1 
      }, 
      { 
       xtype: 'actioncolumn', 
       width: 50, 
       items: [{ 
        icon: 'cancel.png', 
        tooltip: 'Cancel', 
        handler: function (grid, rowIndex, colIndex, col, e) { 
         //Now I need to get the application here, for example with self.getApplication() or something like this. 
        } 
       }] 
     }]; 

     this.callParent(arguments); 
    } 
}); 
+0

你能解釋更多的啓動法? –

+0

再次查看代碼。 –

回答

10

您可以使用appProperty

Ext.application({ 
    name: 'MyApp', 
    appProperty: 'Current' 
}); 

現在,您可以撥打

archieve這
MyApp.Current 

從任何地方導致MyApp命名空間在窗口(全局)範圍內抵制。

任何版本4.1.3之前,以下行添加到應用程序

YourAppName[this.appProperty] = this; 
+0

我不認爲這是在視圖中獲取應用程序的好方法。使用這種方法,我可以訪問頁面中的所有應用程序(考慮我在頁面中有多個應用程序),但是我想獲取相關應用程序的視圖。這足夠清楚了嗎? –

+0

@AfshinMehrabani由於EventBus的設計,目前您只能有一個應用程序(將隨4.2更改)。這不是一種方法,它是應用於應用程序名稱空間的引用。這是獲得Sencha推薦的應用程序當前實例的方法,它也乾淨而快速。我無法想象有更快或更清潔的方式來歸檔這個。 – sra

+0

@AfshinMehrabani只有控制器知道它所屬的應用程序。目前,每個控制器都有一個「應用程序」屬性,您可以使用它。您可以在創建時在視圖上設置參考。無論如何,我看不到這種感覺,因爲你的視圖通過它的命名空間綁定到應用程序,所以使用appProperty將是實現此目的最簡單的方法。 – sra

相關問題