2013-01-02 5 views
6

Wie kann ich meine Anwendung aus einer Sicht bekommen? Zum Beispiel habe ich eine Anwendung Boo und es gibt eine Ansicht, die Boo.view.Foo.List benannt und ich möchte Boo in der Ansicht List erhalten.Wie bekomme ich eine Anwendung aus der Sicht?

Edit:

diesen Code sehen, und sehen Sie die Linie 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

können Sie erklären, mehr hinzufügen? –

+0

Siehe den Code erneut. –

Antwort

10

du die appProperty

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

Sie jetzt

nennen
MyApp.Current 

von überall aus den Namespace MyApp innerhalb des Fensters (globalen) Geltungsbereich widerstehen.

Für jede Version vor 4.1.3 die folgende Zeile in der Auflegungs-Methode des Application-

YourAppName[this.appProperty] = this; 
+0

Ich denke nicht, dass dies ein guter Ansatz ist, um die Anwendung in der Ansicht zu erhalten. Mit dieser Methode kann ich auf alle Anwendungen auf der Seite zugreifen (in Betracht ziehen, dass ich mehr als eine App auf der Seite habe), aber ich möchte die zugehörige App zur Ansicht bringen. Ist es klar genug? –

+0

@AfshinMehrabani Momentan können Sie aufgrund des Designs des EventBus nur eine Anwendung haben (wird mit 4.2 geändert). Und das ist keine Methode, es ist eine Referenz, die auf den Namespace der Anwendung angewendet wird. Dies ist der Weg, um die aktuelle Instanz Ihrer Anwendung von Sencha empfohlen und es ist auch sauber und schnell. Ich kann mir keinen schnelleren oder saubereren Weg vorstellen, dies zu archivieren. – sra

+0

@AfshinMehrabani Nur der Controller kennt die Anwendung, zu der er gehört. Derzeit hat jeder Controller eine Eigenschaft 'application', die Sie dafür verwenden können. Sie können eine Referenz in der Ansicht zum Zeitpunkt der Erstellung festlegen. Wie auch immer, ich kann den Sinn nicht sehen, weil Ihre Ansicht durch den Namespace an die Anwendung gebunden ist, so dass die Verwendung der appProperty der sauberste Weg wäre, dies zu erreichen. – sra

Verwandte Themen