NgModule 的声明元数据
declarations meta data of an NgModule
是否可以在运行时查询装饰有 @NgModule
.
的模块 class 的 declarations
@NgModule({
imports: [
...
],
declarations: [
Component1,
Component2,
Component3
]
})
export class MyModule { }
所以,我想要完成的大致是:
const declarations: Type[] = MyModule.declarations;
我不完全确定,但我相信在 AOT 模式下这个答案是行不通的。除此之外,这是一个 private/naughty 访问 属性 并且可能会更改,但您可以像这样访问定义:
const descriptor = Reflect.getOwnPropertyDescriptor(MyModule, '__annotations__');
if (descriptor) {
const decorator = descriptor.value && descriptor.value[0];
if (decorator) {
const { declarations } = decorator;
}
}
是否可以在运行时查询装饰有 @NgModule
.
declarations
@NgModule({
imports: [
...
],
declarations: [
Component1,
Component2,
Component3
]
})
export class MyModule { }
所以,我想要完成的大致是:
const declarations: Type[] = MyModule.declarations;
我不完全确定,但我相信在 AOT 模式下这个答案是行不通的。除此之外,这是一个 private/naughty 访问 属性 并且可能会更改,但您可以像这样访问定义:
const descriptor = Reflect.getOwnPropertyDescriptor(MyModule, '__annotations__');
if (descriptor) {
const decorator = descriptor.value && descriptor.value[0];
if (decorator) {
const { declarations } = decorator;
}
}