获取 Angular 9 中所有当前注册组件的列表

Gau*_*ava 7 angular angular-ivy angular9

在 Angular 8 中,我们可以这样做来获取所有已注册组件的列表:

    //resolver is ComponentFactoryResolver
    const factories = Array.from(this.resolver['_factories'].values());

    //selector is used so that it will work in production build also
    const factoryClass:any = factories.find((x: any) => x.selector ===  "SOME SELECTOR"); 
    if(factoryClass && factoryClass.componentType != undefined){
          console.log("Component found=>",factoryClass.componentType);
    }
            
Run Code Online (Sandbox Code Playgroud)

在角度 9 中(使用 Ivy 时),this.resolver['_factories']未定义。

我需要所有组件的列表,包括从当前模块导入的模块组件。

这个问题之前已经在这个问题中问过:

如何从 Angular9 中的 ComponentFactoryResolver 访问 Angular7 中可用的 _factories 属性?