我有一个formGroup,该formGroup的控件是formArrays,
我的计划是遍历formGroup.formArrays的值,并检查是否有任何值设置为true,如果可以,则一切正常。
但是正在发生的事情是;总是无效的
static validate (control: AbstractControl): { [key: string]: boolean } | null {
let isChecked = false;
const tempArray = [];
for ( let i = 0; i < control.value.length; i++ ) {
const val = control.value[i];
tempArray.push(val);
}
isChecked = tempArray.find( el => el === true );
if ( isChecked ) {
return null;
}
return {
'isNotChecked' : true
};
}
答案 0 :(得分:0)
因为返回错误的方式。 即,如果无效,则返回null。
如果您在文档中关注英雄。有双重否定。.
** A hero's name can't match the given regular expression */
export function forbiddenNameValidator(nameRe: RegExp): ValidatorFn {
return (control: AbstractControl): {[key: string]: any} | null => {
const forbidden = nameRe.test(control.value);
return forbidden ? {'forbiddenName': {value: control.value}} : null;
};
}
禁止-因为它不能匹配正则表达式。
(正则表达式测试将为匹配返回true)
这是我的例子之一:
export function min(min: Number): ValidatorFn {
return (control: AbstractControl): {[key: string]: any} => {
const input = control.value,
isValid = input < min;
if(isValid)
return { 'minValue': {min} }
else
return null;
};
}
让我知道这是否有帮助。