我需要以编程方式更改Angular Reactive Form中输入的验证器。
所以我初始化表格:
...
limitNumber: [{ value: null, disabled: (this.id ? true : false) }]
...
稍后我启用输入并更改其验证器是必需的:
this.newEventForm.get('limitNumber').enable();
this.newEventForm.get('limitNumber').setValidators(Validators.required);
在此之后,输入的状态为VALID
,只要它保持原始状态即可。如果我编辑输入值并擦除则会变为'INVALID'。
我的问题是,即使pristine将验证器设置为required
,我也需要输入无效。
我该怎么办?
*****编辑*****
我的目标是能够有条件地进行输入。 想象一下,用户创建了一个事件。在新的事件表单中,它可以选择设置最大参与者数量。 如果用户切换输入(让我们称之为'isLimited'),那么我需要一个新的输入,输入这个数字限制,它被启用(让我们称之为'limitNumber'输入),因此必须填写。
所以我的最终目标是只有在'isLimited'输入切换为true时才“输入”此输入
答案 0 :(得分:1)
我只需使用以下代码来检查有效性:
this.newEventForm.get('limitNumber').updateValueAndValidity();