Mixin中的多个类具有相同的功能

时间:2013-03-26 06:08:53

标签: model-view-controller extjs4 mixins

我在我的项目中使用了mixins(EXT Js 4)。我有以下结构。两个类命名为A类和B类,具有以下功能。

Ext.define('ClassA', {        
    classAFunction: function() {      
       alert("ClassAFunction in class A");        
    }        
});

Ext.define('ClassB', {        
    classBFunction: function() {      
       alert("ClassBFunction in class B");        
    },

    classAFunction: function() {      
       alert("ClassAFunction in class B");        
    }           

});

在我的控制器中,我使用mixins来扩展控制器的功能,如下面的代码所示。

Ext.define(Site_Controller', {
extend: 'Ext.app.Controller',

views: [
    'ui.Site_View'
],

mixins: {
   classA: 'ClassA',        
   classB: 'ClassB'

},

init: function() {
    this.control({
        'MainPanel button[action=save]':{
            click: this.CreateSite
        }
    });
},

CreateSite: function() {

  alert("HELLO");
  this.classAFunction;
  this.classBFunction;
}

});

我在视图中出现的单击按钮上调用控制器的createsite方法。因此,当第一次调用的creatite方法得到“HELLO”并且比调用classAFunction时,它给了我“A类中的ClassAFunction”。所以它调用classA函数但我想调用classB中存在的ClassAFunction。所以在extjs中我怎么能得到这个。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以访问mixins并直接调用该函数

this.mixins.classB.classAFunction.call(this);