0

我在我的项目中使用了 mixins(EXT Js 4)。我有以下结构。两个名为 Class A 和 Class 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 方法。因此,当首先调用 createsite 方法时,我得到了“HELLO”,然后调用了 classAFunction,它给了我“A 类中的 ClassAFunction”。所以它调用classA函数但我想调用classB中存在的ClassAFunction。所以在 extjs 中我怎么能做到这一点。

提前致谢。

4

1 回答 1

1

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

this.mixins.classB.classAFunction.call(this);
于 2013-05-13T04:54:44.877 回答