2017-01-23 70 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

我们都犯错误! :-) –