我有一个使用如下方法创建的类:
Ext.define('MY.class.Manager', {
....
....
....
manageStuff: function(){
}
}
最初,我只需要在一个地方使用 manageStuff
函数,所以一切都很好。不过现在,我添加了另一个类,并且需要能够从新类中调用 manageStuff
函数。
我尝试在新类(class)中获取引用:
var ManagerClass = Ext.getClass('MY.class.Manager');
还有:
var ManagerClass = Ext.getClass('class.Manager');
两者都返回null
为了确保在尝试获取 Manager 类之前已定义它,我放入了打印语句:
它们读作:
...making manager class
...getting manager class
寻求任何帮助,因为我确信我解决这个问题的方法从一开始就不正确。
最佳答案
要在不相关的类之间共享行为特征,请使用 mixins:
Ext.define('MyApp.mixin.Foo', {
foo: function(bar, baz) {
alert(bar + ' ' + baz);
}
});
Ext.define('MyApp.class.Foo', {
mixins: [
'MyApp.mixin.Foo'
],
methodThatCallsFoo: function(bar, baz) {
this.foo(bar, baz); // foo method has been mixed in the
}
});
这适用于 Ext JS 4.x+;请记住,在 Ext JS 5 中,此机制变得更加强大,请参阅 Ext.Mixin doc .
关于javascript - Ext 4.1 - 如何获取对使用 Ext.define() 创建的类的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24996498/