patchValue和updateValueAndValidity()方法之间的区别?

时间:2019-01-17 12:07:12

标签: angular angular6 angular7

patchValueupdateValueAndValidity有什么区别。每当我们使用updateValueAndvaliditypatchValue时,都需要打电话给setValue吗?

1 个答案:

答案 0 :(得分:0)

从角度文档// // https://angular.io/guide/reactive-forms

部分模型更新 当更新包含多个控件的表单组实例的值时,您可能只想更新模型的某些部分。本节介绍如何更新表单控件数据模型的特定部分。

修补模型值 有两种方法可以更新模型值:

使用setValue()方法为单个控件设置新值。 setValue()方法严格遵守表单组的结构,并替换控件的整个值。

使用patchValue()方法来替换对象中定义的属性,这些属性在表单模型中已更改。 +++++++++++++++++++++++++++++++++++++++++ 关于updateValueAndValidity

https://angular.io/api/forms/AbstractControl#updateValueAndValidity

重新计算控件的值和验证状态。

根据我的经验,

如果您动态更改表单验证器,则可以updateValueAndValidity。但是如果您只是更改模型对象,则仅使用patchvalue

我会说updateValueAndValidity在表单控件上合并了模式更改+验证程序更改。