2016-08-01 54 views
0

我已将表单转换为使用新表单0.2.0。Angular 2新表单 - 自定义输入验证

当然,我的自定义验证器停止工作......有关如何在此新库中编写自定义输入验证器的任何说明或示例? ,我没有使用AbstractControl,只是旧的控制,并指着旧形式 2)同样重要的是 - 1)我没有一点NG_VALIDATORS到@角/形式:

+0

This http://blog.thoughtram.io/angular/2016/03/14/custom-validators-in-angular-2.html –

回答

0

其实我有一个非常简单的问题虽然这不会导致JS问题,但会导致打字稿发生错误。

/** 
* Created by Franz on 5/8/2016. 
*/ 
import {Directive,provide} from '@angular/core'; 
import {NG_VALIDATORS} from '@angular/forms'; 
import {PASSWORD_REGEX} from '../../common/util/rejex'; 
import {Validator, AbstractControl} from "@angular/forms"; 

function validatePassword(control: AbstractControl) { 
    return PASSWORD_REGEX.test(control.value) ? null : { 
    validatePassword: {valid: false} 
    }; 
} 

@Directive({ 
    selector: '[validatePassword]', 
    providers: [ 
    provide(NG_VALIDATORS, { 
     useValue: validatePassword, // Alternative useExisting: PasswordValidator, but that creates and destroys objects every time. 
     multi: true 
    }) 
    ] 
}) 
export class PasswordValidator implements Validator { 
    constructor() {} 

    validate(c: AbstractControl) { 
    return PASSWORD_REGEX.test(c.value) ? null : {valid: false} 
    }; 
}