ReactiveFormsModule与Angular2中的FormsModule

mue*_*ich 16 angular2-forms angular

存在ReactiveFormModuleFormsModule.

import {FormsModule, ReactiveFormsModule} from "@angular/forms";
Run Code Online (Sandbox Code Playgroud)

我何时应该使用ReactiveFormModule以及与FormModule相比提供此模块的内容.

小智 13

Formsmodule - Angular 1通过着名的ng-model指令处理形式.Angular 2现在提供了一个名为ngModel的相同机制,它允许我们构建现在称为模板驱动的表单.

与AngularJs的情况不同,默认情况下不提供ngModel和其他与表单相关的指令.

ReactiveFormsModule用于模型驱动的表格.每个表单都有一个状态,可以通过许多不同的交互进行更新,并由应用程序开发人员来管理该状态并防止它被破坏.对于非常大的表单,这可能很难做到,并且可能会引入一类潜在的错误.

你可以在哪里编写不在HTML中的Validations.在这种情况下,您可以附加许多Validations和wrap表单.

我从这里得到了这个.有更好的解释:


pbr*_*bre 7

我想澄清一下Oto Lolua的答案.他们对ReactiveFormsModule的解释是从他们链接的文章中的错误上下文中取出的(Oto的ReactiveFormsModule的解释性段落实际上是引用了FormsModule,而不是ReactiveFormsModule,在那篇文章中).

我在这里引用同一篇文章(摘自其摘要):

模板驱动的表单可能对于简单形式稍微不那么冗长,但差别并不显着.实际上,反应式表单功能更强大,具有几乎相同的可读性.

最有可能在大规模应用程序中,我们最终需要反应驱动形式的功能来实现更高级的用例,例如自动保存.


Tin*_*wor 5

根据我的经验,主要区别在于ReactiveFormsModule可以通过实例化类、向表单添加一些值并运行测试来对表单验证逻辑进行单元测试。
随着FormsModule这是一个比较复杂一点,因为你需要部署应用程序,并通过浏览器(或测试Phantomjs)。
还有另一个区别:ReactiveFormsModule 有提供 API 的类,允许使用Functional Reactive Programming构建 UI 。