我创建了如下的表单组
import { setPwd } from './validators';
@Component({
....
export class pwdComp {
...
this.userFormPassword = this.fb.group({
'password': ['', [ setPwd ]]
});
在我的另一个 ts 文件中有 setPwd
方法
export function setPwd(c: FormControl) {
const SINGLE_LETTER_NUMERAL = /^\=\?$/;
return SINGLE_LETTER_NUMERAL.test(c.value) ? null : {
pwd: {
valid: false
}
};
}
上面的脚本工作正常。但是现在我的新场景是我想将 pattern 属性传递给 setPwd
方法,所以我尝试如下
this.userFormPassword = this.fb.group({
'password': ['', [ setPwd('**') ]]
});
setPwd
方法是
export function setPwd(c: FormControl, newPattern) {
但是它抛出了错误。如何将额外的值传递给外部函数。
最佳答案
你应该像下面这样改变你的功能
export function setPwd(pattern: RegExp): ValidatorFn {
return (control: AbstractControl): {[key: string]: any} | null => {
const forbidden = pattern.test(control.value);
return forbidden ? {'pwd': {value: control.value}} : null;
};
}
this.userFormPassword = this.fb.group({
'password': ['', setPwd('**') ]
});
关于javascript - 如何将另一个值传递给表单验证方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54921919/