无法捕获控制器中的任何事件

时间:2015-07-06 12:28:25

标签: extjs model-view-controller

首先,我有这个文件结构:

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加载的。因此,它不是“正常”模块,因此可能存在一些缺少的初始化步骤。

1 个答案:

答案 0 :(得分:1)

定义您不会调用它们的事件处理程序。只是定义。所以,替换

click:this.click();

click: this.click