【发布时间】:2019-02-23 23:01:01
【问题描述】:
我的 FormGroup 验证器引发“Promise or Observable”错误。我研究了许多 SO 示例,解释返回 Observable 或 Promise 作为错误状态,但没有一个解释为什么返回 null 在 Web 服务调用块中工作正常,但不是在验证器函数的末尾,如果它通过至底部。
验证器工作正常。只是我想在开始时消除错误。
组件.ts
ngOnInit() {
this.dnFormGroup = this.formBuilder.group({
displayName: ['', [Validators.required], this.validateDisplayName.bind(this)] //NOTE: 2nd option is required! See https://angular.io/api/forms/FormGroup#description
});
}
public validateDisplayName(control: AbstractControl) {
if(control.value.length >= 3 && control.value !== this.authService.displayName) {
this.displayName = control.value;
return this.authService.validateDisplayName(control.value).then(
(res) => {
if(res) {
//displayName already used
return { displayNameTaken: true };
} else {
//displayName can be used
return null;
}
},
(err) => {
return { displayNameTaken: true };
});
}
return null; //<<<<< ERROR "Expected validator to return Promise or Observable"
}
谢谢, 鲍勃
【问题讨论】:
标签: angular