我正在使用 Angular 6。
我在切换标志并在标志变为假时删除它及其验证时向我的表单添加并显示动态 FormControl 'precisionLimit'。
我在这里面临的问题是:
我的输入类型是“数字”,我正在添加新的 FormControl,例如:
this.surveyModalForm.addControl('precisionLimit', new FormControl(0, Validators.compose([NumberValidator.validate, Validators.min(0), Validators.max(5)])));
这里的问题是,当我第一次切换标志时,我得到并清空输入框(其中应该预先设置 0 值)。还有一个输入数字,验证也不起作用。我也使用updateValueAndValidity()
了方法,但它也没有奏效。
令人惊讶的是,当我第二次切换标志时,值已设置并且验证也正常工作。
但它适用于以下代码的第一次尝试:
this.surveyModalForm.addControl('precisionLimit', new FormControl());
this.surveyModalForm.controls['precisionLimit'].setValue(0);
this.surveyModalForm.controls['precisionLimit'].setValidators([NumberValidator.validate, Validators.min(0), Validators.max(5)]);
所以,我不明白第一种方法出了什么问题。任何帮助,将不胜感激。
PS:我的表单在引导模式中。