2016-08-01 47 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} 
    }; 
}