【发布时间】:2018-06-18 19:52:48
【问题描述】:
我有一个带有禁用表单控件的反应式FormGroup 实例。
表单控件之一上的 valueChanges 侦听器设置其他控件disabled。
每次我将表单的值保存到后端时,都会返回一个更新的对象,并使用patchValue 将其修补回表单中。
不幸的是,在将新对象从后端修补到表单组后,所有控件的禁用状态都丢失了。
- 我在初始化时创建了 FormGroup
- 用户输入的一些值(例如 URL)会导致其他表单控件被禁用。
- 我保存了表单的值
- 我从后端收到更新的对象
- 我将更新的对象修补到表单中。
- 之前禁用的表单控件再次启用。
使用patchValue后如何保持表单控件的禁用状态?
【问题讨论】:
-
您知道(或后端知道)应该禁用哪个控件的标志是什么?
-
这些控件在保存之前已经被禁用(因此修补)。我只是希望控件保持禁用状态。
-
如果您提交
form.value,disabled控件将从表单中完全消失。当您使用Form Builder构建表单时,您需要有某种标志(可以像相应控件的属性是否具有值一样简单)来检查 -
我在初始化时只构建一次FormGroup。
标签: angular angular-reactive-forms