要在Angular Material AutoComplete中注册异步验证器的错误,可以在异步验证器中使用相应的FormControl。这可以通过在asyncValidator中手动添加错误来完成。以下是示例代码:
import { Component } from '@angular/core';
import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';
import { Observable } from 'rxjs/Observable';
@Component({
selector: 'autocomplete-example',
templateUrl: 'autocomplete-example.html',
})
export class AutocompleteExample {
form: FormGroup;
myControl = new FormControl('', {
asyncValidators: [this.exampleValidator],
});
constructor(private fb: FormBuilder) {}
ngOnInit() {
this.form = this.fb.group({
myControl: this.myControl,
});
}
exampleValidator(control: FormControl): Observable<{ [key: string]: any }> {
return Observable.of([true]).delay(1000).map(() => {
if (control.value === 'example') {
control.setErrors({ 'exampleError': true });
} else {
control.setErrors(null);
}
return null;
});
}
}
在上面的代码中,我们可以使用FormControl的setErrors方法手动添加错误。如果值等于“example”,则会添加自定义错误“exampleError”。如果没有错误,则将设置错误为null。
这样,我们就可以在Angular Material AutoComplete中注册异步验证器的错误了。
上一篇:AngularMaterial按钮可以正常工作,但外观并不像Material。
下一篇:AngularMaterial版本(12.1.4)与AngularCDK版本(12.2.1)不一致。请确保这两个软件包的版本完全匹配。