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