patchValue
和updateValueAndValidity
有什么区别。每当我们使用updateValueAndvalidity
或patchValue
时,都需要打电话给setValue
吗?
答案 0 :(得分:0)
部分模型更新 当更新包含多个控件的表单组实例的值时,您可能只想更新模型的某些部分。本节介绍如何更新表单控件数据模型的特定部分。
修补模型值 有两种方法可以更新模型值:
使用setValue()方法为单个控件设置新值。 setValue()方法严格遵守表单组的结构,并替换控件的整个值。
使用patchValue()方法来替换对象中定义的属性,这些属性在表单模型中已更改。 +++++++++++++++++++++++++++++++++++++++++ 关于updateValueAndValidity
https://angular.io/api/forms/AbstractControl#updateValueAndValidity
重新计算控件的值和验证状态。
根据我的经验,如果您动态更改表单验证器,则可以updateValueAndValidity。但是如果您只是更改模型对象,则仅使用patchvalue
我会说updateValueAndValidity在表单控件上合并了模式更改+验证程序更改。