Angular 4 ReactiveFormsModule不应该使用forRoot模式吗?

时间:2017-10-22 16:23:31

标签: angular dependency-injection angular-reactive-forms

我正在阅读一篇关于Angular模块加载的写得非常好的文章 - https://medium.com/@cyrilletuzi/understanding-angular-modules-ngmodule-and-their-scopes-81e4ed6f7407

由于功能模块“ NgModule 的提供者实际上是全局(并且热切地)注入的,因此本文讨论了 RouterModule 等模块中使用的”forRoot“模式。

我遇到了 ReactiveFormsModule - https://angular.io/api/forms/ReactiveFormsModule - 它有 FormBuilder 提供程序,但它似乎没有使用forRoot模式。这是不是意味着每个使用ReactiveFormsModule的功能模块都会重新创建 FormBuilder 提供程序?我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

forRoot仅与延迟加载的模块相关。对于急切加载的模块,提供程序无论如何都在应用程序根范围中注册。

如果您在延迟加载的模块中导入了ReactiveFormsModule,那么将为每个延迟加载的模块创建一个FormBuilder实例。 它并不重要,因为FormBuilder没有状态。 因此,不是单身人士对于FormBuilder的工作方式没有任何影响,并且因为它没有状态,所以它在记忆方面也没有区别。