我正在阅读angular.io(Reactive forms are synchronous)的文档,尝试理解反应形式(它们是同步的,模板驱动的形式是异步的)。
但是文档没有足够的解释。任何人都可以帮助我理解模板驱动的表单是如何异步的,并且反应形式是同步的吗?
我试图在互联网上探索很多博客,但没有得到答案。
感谢任何帮助。
答案 0 :(得分:1)
在相同的文档中仔细阅读本行:
反应式表单是同步的(当您从代码创建控件时) 在反应形式中,可以在代码中创建整个表单控件树。您可以立即更新值或深入查看父窗体的后代,因为所有控件始终可用。
模板驱动的表单是异步的(因为它委托创建控件的任务) 模板驱动的表单委托创建表单控件到指令。为了避免在检查后发生变化"错误,这些指令需要不止一个周期来构建整个控制树。这意味着您必须在操作组件类中的任何控件之前等待勾号。
在你驱动的模板中编写 [NgModel]或[NgForm](指令),它将在html中的网页上创建控件,这就是异步的方式。
如果你附上钩子 ngAfterViewInit生命周期钩子,你会发现它们之间的区别很容易,
在Reactive表单中,您可以找到控制模板驱动的位置。