EXTJS 4控制视图问题

我试图找出如何做到以下,但我有点困惑。 我有一个我称之为模块的视图:

Ext.define('MyApp.view.module.Module', {

  mixins : {
    observable :  'Ext.Util.Observable'
  },

  constructor : function(){
     this.addEvent('clickmodule');
     this.mixins.observable.constructor.call(this, config);
     this.init();
  }
   init : Ext.emptyFn
 });

这个课程延伸到:

 Ext.define('MyApp.view.module.MyModule', {
 extends : 'MyApp.view.module.Module',
 alias : 'widget.mymodule',

  init : function() {
       this.on('clickmodule', function(){
         alert('this is always fired so the event works');
       }, this)
       this.init();
  },

  runModule : function(){
     this.fireEvent('clickmodule');
  }
  });

所以我有一个基本模块,然后是我的真实模块,当调用runModule()时,它会触发我在名为clickmodule的基类中创建的事件。 这工作和火,我只是一个侦听器在init()方法,它侦听事件被解雇,它的工作,所以我知道它被解雇。 问题是我如何让Controlerl倾听事件并采取一些行动? 我似乎无法找到这样做的例子吗? 所以例如我在我的控制器中有这个,但不认为它是正确的,我不知道如何做到这一点:

Ext.define('MyApp.controller.Desktop', {
 extends : 'Ext.app.Controller',
 refs : [
     ref : 'module',
     selector : 'mymodule'
  ],
 views : ['module.MyModule'],
 init : function(){
   this.control({
      'mymodule' : {
         clickmodule : this.onModuleClick
       }
   });
 },

 onModuleClick : function(){
     alert('this never gets called');
 }

});

所以我知道这个事件是因为我把一个监听器放在类中而被调用的。 但是我没有在控制器中做正确的事情,因为它在解雇时似乎没有得到事件。 在设置this.control时,我想我错过了一些东西。


原来我的MyApp.view.module.Module需要扩展Ext.Component。 这是我能够在控制器中触发事件的唯一方法。

链接地址: http://www.djcxy.com/p/76395.html

上一篇: EXTJS 4 Control View Issue

下一篇: ExtJS File Upload Woes