我试图通过说它是否可用异步验证器来验证用户名,我已经尝试了很多解决方案,但我不知道如何完成这项工作,我有这个错误:
Error: Expected validator to return Promise or Observable.
Run Code Online (Sandbox Code Playgroud)
我的方法 validateUsername() 不完整,我怎样才能让它工作?
注册.component.ts
this.registerForm = this.fb.group({
username: ['', [Validators.required], this.validateUsername.bind(this)],
email: ['', [Validators.required,
Validators.pattern('[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$')]],
password: this.fb.group({
pwd: ['', [Validators.required, Validators.minLength(1)]], // todo
confirmpwd: ['', [Validators.required, Validators.minLength(1)]]// todo
}, {
validator: this.mustMatch('pwd', 'confirmpwd'),
}),
birthday: ['', Validators.required]
});
}
validateUsername(control: AbstractControl) {
this.userservice.checkUserExist(control.value).subscribe(
res => {
this.exist = 'username available ';
},
error => {
this.exist = 'username unavailable ';
}
);
}
Run Code Online (Sandbox Code Playgroud)
注册.component.html
<div class="form-group">
<label for="inputName" class="font-weight-bold">Usuario</label>
<div class="input-group …Run Code Online (Sandbox Code Playgroud)