Angular表单考证器

Angular 表单考证器

为什么运用考证器?

缘由: 用户输入的数据形形色色,并不老是准确的,假如用户输入了毛病的数据格式,那末我们愿望给他们供应及时准确的回响反映,而且阻挠表单的提交.因而,我们须要考证器来处置惩罚这些状况.

Angular 考证器

1.考证器由Validators模块供应,该模块从’@angular/forms’中导出

import { Validators }from'@angular/forms'

2.运用考证器的要领

// 为FormControl对象指定一个考证器
// 在视图中搜检考证器的状况,并依据返回值做出回响反映
例子1:
    let control = new FormControl('name', Validators.required);
例子2:
    this.myForm = this.fb.group({
        'name': ['', Validators.required]
    });

3.考证器能够考证的信息

// 搜检单个字段的有效性
体式格局一: myForm.controls['name'].hasError('');
体式格局二: myForm.hasError('', 'name');
// 搜检全部表单的有效性
myForm.valid   // 全部formGroup是不是可用
myForm.dirty   // 是不是被修悛改
myForm.touched // 是不是提交过

自定义考证器

1.起首检察Angular源代码,比方Validators.required:

export class Validators {
    static required(c: FormControl): StringMap<string,boolean> {
        return isBlank(c.value) || c.value == '' ? { 'required': true } : null;
    }
}

2.编写自定义考证器

// name必需以'zhou'开首
function nameValidator(control: FormControl): { [s: string]: boolean } {
    if (!control.value.match(/^zhou/)) {
        return { invalidName: true };
    }
}
// 运用要领
this.myForm = this.fb.group({
    'name': ['', [Validators.required, this.nameValidator]]
});
    原文作者:zhou
    原文地址: https://segmentfault.com/a/1190000012902010
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞