存在 ReactiveFormModule 和 FormsModule 。
import {FormsModule, ReactiveFormsModule} from "@angular/forms";
我何时应该使用 ReactiveFormModule 以及与 FormModule 相比提供此模块的内容。
答案 0 :(得分:12)
Formsmodule
- Angular 1通过着名的ng-model指令处理表格。 Angular 2现在提供了一个名为ngModel的相同机制,允许我们构建现在称为模板驱动的表单。
与AngularJs的情况不同,默认情况下,ngModel和其他与表单相关的指令不可用。
ReactiveFormsModule
用于模型驱动表单。每个表单都有一个状态,可以通过许多不同的交互进行更新,并由应用程序开发人员来管理该状态并防止其被破坏。对于非常大的表单,这可能很难做到,并且可能会引入一类潜在的错误。
您可以在html中编写Validations。在这种情况下,您可以附加许多验证和换行表单。
我从这里得到了这个。有更好的explanation:
答案 1 :(得分:5)
我想澄清一下Oto Lolua的回答。他们对ReactiveFormsModule的解释是从他们链接的文章中的错误上下文中取出的(Oto的ReactiveFormsModule的解释性段落实际上是参考 FormsModule ,而不是ReactiveFormsModule,在那篇文章中)。
我在这里引用同一篇文章(from its summary):
模板驱动表单可能对于简单形式稍微不那么详细,但差别并不显着。反应形式实际上更强大,具有几乎相同的可读性。
最有可能在大规模应用程序中,我们最终需要反应式驱动表单的功能来实现更高级的用例,例如自动保存。
答案 2 :(得分:3)
根据我的经验,主要区别在于ReactiveFormsModule
可以通过实例化类,向表单添加一些值并运行测试来对表单验证逻辑进行单元测试。
FormsModule
由于您需要部署应用程序并使用浏览器(或Phantomjs
)对其进行测试,因此numbers
会更复杂。
还有另一个区别:ReactiveFormsModule具有提供API的类,允许使用Functional Reactive Programming构建UI。
答案 3 :(得分:-3)
Formsmodule - Angular 1通过着名的ng-model指令处理形式。 Angular 2现在提供了一个名为ngModel的相同机制,允许我们构建现在称为模板驱动的表单。
与AngularJs的情况不同,默认情况下,ngModel和其他与表单相关的指令不可用。
ReactiveFormsModule用于模型驱动的表单。每个表单都有一个状态,可以通过许多不同的交互进行更新,并由应用程序开发人员来管理该状态并防止其被破坏。对于非常大的表单,这可能很难做到,并且可能会引入一类潜在的错误。
您可以在html中编写Validations。在这种情况下,您可以附加许多验证和换行表单。