是否可以在一个表单字段上有多个验证器?我try 了这个,但它导致了一些奇怪的错误(字段永远无效,即使满足了要求)
this.username = new Control('', Validators.minLength(5), Validators.required);
如何使用多个验证器?
是否可以在一个表单字段上有多个验证器?我try 了这个,但它导致了一些奇怪的错误(字段永远无效,即使满足了要求)
this.username = new Control('', Validators.minLength(5), Validators.required);
如何使用多个验证器?
您可以使用Validators.compose()
组合验证器
this.username = new Control('',
Validators.compose(
[Validators.minLength(5), Validators.required]));
异步验证程序使用
this.username = new Control('', null,
Validators.composeAsync(
[someAsyncValidator, otherAsyncValidator]));
异步验证器存在开放性问题,尤其是与异步验证器结合使用的同步验证器无法工作
要使同步验证器与异步验证器协同工作,请将同步验证器包装在promise 中,并将其组合为异步Valdiator,如
this.username = new Control('', null,
Validators.composeAsync([
(control:Control) => Promise.resolve(Validators.minLength(5)(control)),
(control:Control) => Promise.resolve(Validators.required(control)),
someAsyncValidator, otherAsyncValidator
]));