3 回答

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊
我發(fā)現(xiàn)一個(gè)實(shí)現(xiàn)許多自定義驗(yàn)證器的庫-ng2-validation-可與模板驅(qū)動(dòng)的表單(屬性指令)一起使用。例:
<input type="number" [(ngModel)]="someNumber" name="someNumber" #field="ngModel" [range]="[10, 20]"/>
<p *ngIf="someNumber.errors?.range">Must be in range</p>

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊
通過創(chuàng)建實(shí)現(xiàn)該Validator接口的指令,您可以輕松實(shí)現(xiàn)自己的驗(yàn)證(模板驅(qū)動(dòng))。
import { Directive, Input, forwardRef } from '@angular/core'
import { NG_VALIDATORS, Validator, AbstractControl, Validators } from '@angular/forms'
@Directive({
selector: '[min]',
providers: [{ provide: NG_VALIDATORS, useExisting: MinDirective, multi: true }]
})
export class MinDirective implements Validator {
@Input() min: number;
validate(control: AbstractControl): { [key: string]: any } {
return Validators.min(this.min)(control)
// or you can write your own validation e.g.
// return control.value < this.min ? { min:{ invalid: true, actual: control.value }} : null
}
}
- 3 回答
- 0 關(guān)注
- 705 瀏覽
添加回答
舉報(bào)