2

我使用ComponentFactoryResolver访问所有入口组件工厂,然后在 Angular 7 中动态添加这些组件的路由。

constructor(private componentFactoryResolver: ComponentFactoryResolver) {
}

var factories = this.componentFactoryResolver['_factories']

let route: Route = {
                path: MyPath,
                component: factories[0].factory[1].componentType
            };

this.router.resetConfig(config);

我将我的项目更新到 Angular 9,现在_factories在 ComponentFactoryResolver 中不可用。

var factory = this.componentFactoryResolver['_factories']

它在 Angular 9 中返回 undefined。如果有人可以建议一些方法来随时随地访问所有条目组件列表,那将是非常有帮助的。问题是我没有任何关于入口组件的信息,我可以通过编译器重新编译组件并添加它们的路由。

4

1 回答 1

0

我认为更简单的方法可能是导入组件并直接使用它来代替factories[0].factory[1].componentType. 例子:

import { MyComponent } from '@app/my.component';

constructor(private componentFactoryResolver: ComponentFactoryResolver) {
}

let route: Route = {
                path: MyPath,
                component: MyComponent
            };

this.router.resetConfig(config);
于 2020-11-18T03:01:00.913 回答