Nic*_*ges 2 validation angular
我的自定义验证器中有以下代码:
import { ValidatorFn, AbstractControl } from '@angular/forms';
// Credit for this function:
// https://stackoverflow.com/a/17390131/2044
function isPrime(aNumber: number): boolean {
let start: number = 2;
const limit: number = Math.sqrt(aNumber);
while (start <= limit) {
if (aNumber % start++ < 1) {
return false;
}
}
return aNumber > 1;
}
export class NumberValidators {
static isPrimeNumber(): ValidatorFn {
return (control: AbstractControl): { [key: string]: boolean } | null => {
if (isPrime(control.value)) {
return null;
}
return {
isPrimeNumber: true
};
};
}
Run Code Online (Sandbox Code Playgroud)
这段代码有效; 然而,它似乎倒退了我.看起来这个if
语句是180度 - 它应该true
在值验证时返回对象(with ),否则返回null.
所以我的问题是:这里发生了什么?
我承认验证器的返回值看起来有点时髦,但是文档上有你需要的所有信息:https://angular.io/api/forms/ValidatorFn
接收控件并同步返回验证错误映射(如果存在)的函数,否则为null.
根据定义,当没有错误时,验证器函数返回null.否则,它返回一个对象,其中错误由键定义.
这也正是这个方法签名所说的:
(control: AbstractControl): { [key: string]: boolean } | null
Run Code Online (Sandbox Code Playgroud)
此验证器函数接受类型为抽象控件的输入,并将返回EITHER一个对象,其中键是一个字符串,值为布尔值OR null.
归档时间: |
|
查看次数: |
499 次 |
最近记录: |