如何遍历ExtJS应用程序中定义的所有类

时间:2017-03-05 16:26:46

标签: extjs extjs6

在单页ExtJS 6应用程序中,我需要扫描所有使用Ext.define方法声明的类,并找到那些实现特定mixin的类。为简单起见,我们假设我感兴趣的所有类都已加载,并且按需加载机制已不在游戏中。

似乎没有其他方法可以通过私有Ext.ClassManager.classes属性进行迭代。有更清洁的选择吗?

无论如何,上面给出了类名列表。如何判断相应的类是否实现了特定的mixin?

1 个答案:

答案 0 :(得分:1)

function getClassesByMixin(mixin){
    var classes=[];
    Ext.iterate(Ext.ClassManager.classes,function(className,c){
        if(c.prototype &&c.prototype.mixins &&  c.prototype.mixins[mixin]){
            classes.push(className);
        }
    });
    return classes;
}

Sencha fiddle