如何在Angular中向异步验证器(反应式表单)传递额外的参数?
我有下面的异步验证器。如果我想将其用于反应形式,我必须将其作为第三个参数传递如何在Angular中向异步验证器(反应式表单)传递额外的参数?,angular,angular-reactive-forms,angular-validation,Angular,Angular Reactive Forms,Angular Validation,我有下面的异步验证器。如果我想将其用于反应形式,我必须将其作为第三个参数传递 slug: [null, [Validators.required], [CustomValidators.slug]], 如何将额外的参数传递给验证器 import {FormControl} from "@angular/forms"; interface IValidation { [key: string]: boolean; } export class CustomValidators {
slug: [null, [Validators.required], [CustomValidators.slug]],
如何将额外的参数传递给验证器
import {FormControl} from "@angular/forms";
interface IValidation {
[key: string]: boolean;
}
export class CustomValidators {
static slug(control: FormControl) {
const q = new Promise<IValidation>((resolve, reject) => {
setTimeout(() => {
if (control.value === 'TEST') {
resolve({'duplicated': true});
} else {
resolve(null);
}
}, 1000);
});
return q;
}
}
从“@angular/forms”导入{FormControl}”;
界面氧化{
[键:字符串]:布尔值;
}
导出类CustomValidator{
静态段塞(控制:FormControl){
const q=新承诺((解决、拒绝)=>{
设置超时(()=>{
如果(control.value==='TEST'){
解析({'duplicated':true});
}否则{
解析(空);
}
}, 1000);
});
返回q;
}
}
如果我把它当作
slug:[null,[Validators.required],[CustomValidators.slug('string param')]
问题是,第一个参数是控件。按如下方式编写验证:
static slug(param: string) {
return (control: FormControl) => {
const q = new Promise<IValidation>((resolve, reject) => {
setTimeout(() => {
if (control.value === 'TEST') {
resolve({'duplicated': true});
} else {
resolve(null);
}
}, 1000);
});
return q;
};
}
静态段塞(参数:字符串){
返回(控件:FormControl)=>{
const q=新承诺((解决、拒绝)=>{
设置超时(()=>{
如果(control.value==='TEST'){
解析({'duplicated':true});
}否则{
解析(空);
}
}, 1000);
});
返回q;
};
}