我刚刚开始学习 Angular。我遇到了几个ngModule
在空的class
.
我想知道的是......装饰器class
正下方的声明是ngModule
仅用于初始化模块还是用于任何其他目的?
我刚刚开始学习 Angular。我遇到了几个ngModule
在空的class
.
我想知道的是......装饰器class
正下方的声明是ngModule
仅用于初始化模块还是用于任何其他目的?
ngDoBootstrap
例如,当第一次加载延迟加载的模块(初始化)时,您可以使用构造函数或实现来执行代码
您还可以将服务注入构造函数,以便在初始化应用程序或延迟加载模块时由 DI 实例化它们。
我不记得看到其他例子了。除此之外,它只带有@NgModule()
装饰器和那里提供的信息。(构建应用程序时可能会生成一些额外的代码)
另请参阅https://angular.io/guide/entry-componentsngDoBootstrap
中的评论
查看 angular NgModules 的官方文档。https://angular.io/guide/ngmodules
以下内容来自于此:
@NgModule接受一个元数据对象,该对象描述如何编译组件的模板以及如何在运行时创建注入器
NgModule 元数据执行以下操作:
该类仅用作您可以从打字稿导入的参考。装饰器不能在没有要装饰的类或成员的情况下放置。
编译后,它将保存您用于装饰该类的注释。Angular 将使用这些来配置注入器,尤其是当组件需要注入给定的成员类型时,它需要创建哪个类。
现在,您可以将一些东西放入构造函数中,例如,如果您想在模块(和相关组件/提供者)即将被注入时做一些事情。这是我现在能想到的唯一用途。
[编辑] 当应用程序启动时,我只是用它来注册一个语言环境。
export class AppModule {
constructor() {
registerLocaleData(localeDeCH);
}
}
这个想法来自这里他们没有指定在哪里打电话registerLocaleData
您需要有效的类声明export
。该模块使用导入进行初始化,但您可以从类导出中访问功能(实际上,您在导入什么?)
希望这有帮助
编辑 -
“类的主体是空的。但是类上方的装饰器 (@NgModule) 正在为该类提供功能。所以真的,该类不是空的。在应用装饰器后它不需要任何额外的逻辑bootstrapModule 将一个类作为输入,并假定该类用@NgModule 进行装饰,其配置方式类似于您所拥有的(声明、导入、提供程序等)。” 来自:为什么 Angular 在 app.modules.ts 中导出空类?