Angular 2/4:反应形式是同步的,而模板驱动的形式是异步的,如何?

时间:2018-04-05 05:56:39

标签: angular angular-reactive-forms angular4-forms

我正在阅读angular.io(Reactive forms are synchronous)的文档,尝试理解反应形式(它们是同步的,模板驱动的形式是异步的)。

但是文档没有足够的解释。任何人都可以帮助我理解模板驱动的表单是如何异步的,并且反应形式是同步的吗?

我试图在互联网上探索很多博客,但没有得到答案。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

在相同的文档中仔细阅读本行:

反应式表单是同步的(当您从代码创建控件时) 在反应形式中,可以在代码中创建整个表单控件树。您可以立即更新值或深入查看父窗体的后代,因为所有控件始终可用。

模板驱动的表单是异步的(因为它委托创建控件的任务) 模板驱动的表单委托创建表单控件到指令。为了避免在检查后发生变化"错误,这些指令需要不止一个周期来构建整个控制树。这意味着您必须在操作组件类中的任何控件之前等待勾号。

在你驱动的模板中编写 [NgModel]或[NgForm](指令),它将在html中的网页上创建控件,这就是异步的方式。

如果你附上钩子 ngAfterViewInit生命周期钩子,你会发现它们之间的区别很容易,

在Reactive表单中,您可以找到控制模板驱动的位置。