Angular语言 - 如何在更新单个输入时停止触发所有表单字段验证



我有一个包含以下输入的表单:名、姓、用户名和密码。

我可以使用按钮生成随机密码,使用set/patchValue进入控件将触发所有验证(对于名字,姓氏和用户名),但我想触发验证只是为我的输入(密码)

this.userDetailsFormGroup
.get('password')
?.patchValue(usersData.data.toString());

我该怎么做?

确保按钮上有type="button"属性(当然保存按钮除外),否则它们将触发提交事件,因为按钮的默认typesubmit。这就是为什么你得到所有字段的验证错误。

另一个注意事项:当您像您一样更新值时(通过抓取firstName控件并在其上设置原始值),您可以使用setValue而不是patchValuepatchValue在设置"复杂"时很有用。值,你只更新它的一部分。例如,您可以这样做:

this.userDetailsFormGroup.patchValue({ firstName: usersData.data.toString() });