如何在Angular 2中获取当前模块的元数据?

我想获取当前NgModule的元数据,以获取声明和提供程序列表,以便填充我创建的动态模块,以显示模态中的组件.

怎么办?

最佳答案 您可以使用
reflect-metadata程序包访问声明.但是,您需要安装此软件包并将其包含在项目中.之后你可以得到这样的注释:

let annotations: DecoratorFactory[] = Reflect.getMetadata('annotations', ModuleClass);

如果@NgModule是那里唯一的注释,我猜它是,你可以访问这样的声明,否则你必须猜测正确的索引:

let declarations: any[] = annotations[0].declarations;

有关进一步的参考,请参见answer

点赞