2010-12-23 10 views
0

Wir arbeiten an einem Web-Anwendungen. Um die Komponenten vorkonfiguriert zu halten, habe ich viel Ext.Extend Arbeit geleistet.Über Sencha/Ext JS Ereignisse Feuer & am

Hier sind die Vordefinitionen.

Im Eingang, in index.js

Ext.setup({ 
    onReady: function() { 
     var app = new App(); 
    } 
}); 

Die Hauptklasse, in App.js, App neuen manche Kartenkomponenten, wie zum Beispiel:

App = Ext.extend(Ext.Panel,{ 
    initComponent: function(){ 
     this.sub1 = new Sub_Class_1(); 
     this.sub2 = new Sub_Class_2(); 
     this.sub3 = new Sub_Class_3(); 
     this.items = [this.sub1, this.sub2, this.sub3]; 
     App.superclass.initComponent.call(this); 
     this.sub1.on('Event1', this.Event1_fn, this) 
    }, 
    Event1_fn: function() { 
     //some codes 
    } 
}); 

The Problem kommt in der Definition von Sub_Class_1 in Sub_Class_1.js:

var firefun = function() { 
    this.fireEvent('Event1'); 
}; 

Sub_Class_1 = Ext.extend(Ext.Panel,{ 
    //some similar init configure jobs. 
    //add *firefun* into this class 
}) 

Das Problem ist, wenn ich das Ereignis in Firefun auslösen, gibt es keine Reaktion vom Programm. Stimmt etwas nicht mit dem Zielfernrohr? Kann mir die Community mit Vorschlägen helfen, die ich beheben kann?

Antwort

0

Ich löste es. Dies ist in der Tat auf das Problem des Umfangs zurückzuführen.

Um es zu lösen, übergeben Sie den eventName, eventListener, Bereich an die Funktion. Lassen Sie es im richtigen Umfang schießen. Boom, es funktioniert!

Eine bessere Lösung?

Verwandte Themen