如何正确使用带有自定义验证器的FormControl? [角/角材料]

时间:2019-06-11 07:27:52

标签: angular angular-material angular-material2 angular-forms angular-validator

sed -Ee 's/\./\\./g' -e 's/^/\^/g' -e 's/$/\$/g' file2 > file2_updated 上使用自定义grep -i -f file2_updated file1 时出现显示问题。 我的输入之一是错误的,而没有错误。

enter image description here

这是我的两个FormControl:

Validators

FormControl具有不同于FormControl1 = new FormControl({ value: 0, disabled: false }, [Validators.required, Validators.min(0), Validators.max(31), Validators.compose([this.checkError])]); FormControl2 = new FormControl({ value: 0, disabled: false }, [Validators.required, Validators.min(0), Validators.max(31)]); 的自定义错误,它是:

FormControl1

如果第一个输入的值为2,则将发生错误并且它可以正常工作。 另一方面,当第一个输入的值在0到31之间且不等于2时, 我的输入显示为红色,好像仍然有错误,这是我不希望的。

我希望FormControl2以与checkError(fieldControl: FormControl): { [s: string]: boolean } { console.log(fieldControl); if (fieldControl.value === 2) { return { error: true } } else { return { error: false } } } 相同的方式工作,但不会显示错误 因为它没有自定义FormControl1

HTML代码:

FormControl2

如果有人可以解决我的问题,那么我就是接受者。 StackBlitz HERE

谢谢

1 个答案:

答案 0 :(得分:0)

我找到了我的问题所在。如果没有错误,我的checkError()的{​​{1}}函数应该不返回任何内容:

validator