2013-01-02 35 views
6

Jak mogę pobrać aplikację z widoku? Na przykład rozważ, czy mam aplikację Boo i istnieje widok o nazwie Boo.view.Foo.List i chcę uzyskać Boo w widoku List.Jak uzyskać dostęp do aplikacji?

Edit:

Zobacz ten kod, i spojrzeć na linię 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

można powiedzieć coś więcej? –

+0

Zobacz kod ponownie. –

Odpowiedz

10

Można Archiwum to używając appProperty

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

Teraz można nazwać

MyApp.Current 

z dowolnego miejsca powoduje, że przestrzeń nazw MyApp jest odporna na zakres okna (globalny).

dla dowolnej wersji przed 4.1.3 dodać następującą linię do uruchamiania sposobie Wniosku

YourAppName[this.appProperty] = this; 
+0

Nie sądzę, że jest to dobre podejście do uzyskania aplikacji w widoku. Dzięki tej metodzie mogę uzyskać dostęp do wszystkich aplikacji na stronie (należy wziąć pod uwagę, że mam więcej niż jedną aplikację na stronie), ale chcę uzyskać powiązaną aplikację z widokiem. Czy to wystarczająco jasne? –

+0

@AfshinMehrabani Obecnie możesz mieć tylko jedną aplikację ze względu na konstrukcję EventBus (zostanie zmieniona za pomocą 4.2). I to nie jest żadna metoda, to odniesienie zastosowane do przestrzeni nazw Aplikacji. Tthis jest sposobem na to, aby aktualna instancja Twojej aplikacji była polecana przez Sencha, a także jest czysta i szybka. Nie mogę sobie wyobrazić szybszego ani czystszego sposobu na zarchiwizowanie tego. – sra

+0

@AfshinMehrabani Tylko kontroler zna aplikację, do której należy. Obecnie każdy kontroler ma właściwość 'application', której możesz użyć do tego. Możesz ustawić odniesienie do widoku w czasie tworzenia. W każdym razie nie widzę sensu, ponieważ twój widok jest związany z aplikacją przez jego przestrzeń nazw, więc użycie appProperty byłoby najczystszym sposobem na zarchiwizowanie tego. – sra

Powiązane problemy