我们正在开发一个网络应用程序。为了保持组件的预配置,我做了很多Ext.extend工作。
这是预定义。
在入口处, index.js
Ext.setup({
onReady: function() {
var app = new App();
}
});
主要类,在 App.js 中,App会新增一些卡组件,例如:
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 :(得分:0)
我解决了。这确实是由于范围问题。
要解决它,我将eventName,eventListener,scope传递给函数。让它可以在正确的范围内发射。热潮,它有效!
有更好的解决方案吗?