2017-01-23 79 views
0

我有一個最簡單的異步驗證以下形式的控制,我可以寫:角2異步驗證始終無效

this.aliasCtrl = this._fb.control('', [(control: AbstractControl) => { 
    return new Promise(resolve => { 
    console.log(this.aliasCtrl); 
    resolve(null); 
    }); 
}]); 

我的表單定義是:

this.contactForm = this._fb.group({ 
    alias: this.aliasCtrl 
}); 

我的形式控制始終是無效的。 這裏是一個蹲點:http://plnkr.co/edit/vyr48ke7fWEUwrXy43tn?p=preview 我確定我錯過了一些東西,但我找不到。

感謝您的幫助。

+1

異步驗證器應該作爲第3個參數**傳遞給FormControl構造函數。看起來你正在使用第二個參數。 https://angular.io/docs/ts/latest/api/forms/index/FormControl-class.html – AngularChef

回答

3

變化的代碼:

this.aliasCtrl = this._fb.control('', null, (control: AbstractControl) => { 
    return new Promise(resolve => { 
    console.log(this.aliasCtrl); 
    resolve(null); 
    }); 
}); 

通行證爲零或爲空數組validators(第二個參數)和異步校驗函數作爲第三個參數。

經過測試......有作品!

+0

什麼是新手錯誤:)謝謝。 – Happy

+0

我們都犯錯誤! :-) –