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

And*_*res 5 metadata angular2-aot angular2-modules angular

我想获取当前NgModule的元数据,以便获取列表declarations并providers填充我创建的动态模块,以在模式中显示组件。

那怎么办呢?

Pie*_*Duc 1

您可以使用该包访问声明reflect-metadata。但是,您确实需要安装此软件包并将其包含在您的项目中。之后你可以得到这样的注释:

let annotations: DecoratorFactory[] = Reflect.getMetadata('annotations', ModuleClass);
Run Code Online (Sandbox Code Playgroud)

如果这@NgModule是那里唯一的注释(我猜是这样),您可以像这样访问声明,否则您必须猜测正确的index:

let declarations: any[] = annotations[0].declarations;
Run Code Online (Sandbox Code Playgroud)

请参阅此答案以获取更多参考