2010-12-23 46 views
0

我们正在开发一个网络应用程序。为了保持组件的预配置,我做了很多Ext.extend工作。关于Sencha/Ext JS Events火上

这里是预定义。

在入口,index.js

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

的主类,在App.js,应用程序将新卡的一些部件,如:

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 
    } 
}); 

的问题来了,在Sub_Class_1的定义中,在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 
}) 

问题是,如果我在firefun中激发事件,程序没有反应。范围有问题吗?社区可以帮助我解决问题的建议吗?

回答

0

我解决了它。这确实是由于范围问题。

为了解决这个问题,我将eventName,eventListener,scope传递给函数。让它可以在正确的范围内发射。繁荣,它的作品!

任何更好的解决方案?