我正在使用Angular 6。
我要在表单上添加并显示动态FormControl'precisionLimit',以切换标志,并在标志变为false时删除它及其验证。
我在这里面临的问题是:
我的输入类型是'数字',并且我要添加新的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)]);
所以,我没有发现第一种方法出了什么问题。任何帮助将不胜感激。
P.S .:我的表单位于引导程序模式内。