即使setValidators设置为必需

时间:2017-08-07 16:37:16

标签: angular angular-reactive-forms

我需要以编程方式更改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时才“输入”此输入

1 个答案:

答案 0 :(得分:1)

我只需使用以下代码来检查有效性:

this.newEventForm.get('limitNumber').updateValueAndValidity();