我在我的项目中使用了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中我怎么能得到这个。
提前致谢。
答案 0 :(得分:1)
您可以访问mixins并直接调用该函数
this.mixins.classB.classAFunction.call(this);