Angular 2异步验证器始终无效

时间:2017-01-23 11:47:34

标签: validation angular asynchronous

我有以下表格控件,我可以编写最简单的异步验证器:

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 个答案:

答案 0 :(得分:4)

将代码更改为:

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

validators(第二个参数)传递null或空数组,并将async validator函数作为第三个参数传递。

经过测试......工作!