首先,我有这个文件结构:
Module1/
init.js
store/
...
view/
Module1Panel.js
controller/
Module1Controller.js
Module2/
init.js
store/
...
view/
Module2Panel.js
controller/
Module2Controller.js
在Module1中,我像这样加载Module2:
#module1/init.js
...
Ext.application({
paths:{
'Module2':'/app/Module2'
},
...
controllers:['Module1Controller','Module2.controller.Module2Controller']
});
由于我在控制台中看到的所有这些,所有控制器,所有视图,所有商店和模型都被加载。在这一刻,一切看起来都很完美,除了一件令人讨厌的事情 - 来自Module2的控制器没有发现任何事件。我的意思是,我不能使这段代码工作
#Module2Controller.js
...
init:function(){
this.control({
'Module2Panel button[itemId=test2]':{
click:this.click();
}
});
console.log('Hello from init'); //this works
},
click:function(){
console.log('Hello from click'); //this does not work on button click
}
我想我知道控制器应该如何工作。至少,Module1controller工作得很好。我一点一点地逐行完成。因此,我认为不应该有任何重大错误。否则,我不会看到所有控制器,视图,存储和模型都被加载。请告诉我如何调试我的代码并发现错误。 PS。我认为,Module2只有一件特别之处,就是它是从Module1加载的。因此,它不是“正常”模块,因此可能存在一些缺少的初始化步骤。
答案 0 :(得分:1)
定义您不会调用它们的事件处理程序。只是定义。所以,替换
click:this.click();
与
click: this.click