小编Xav*_*ier的帖子

验证用户名是否存在异步

我试图通过说它是否可用异步验证器来验证用户名,我已经尝试了很多解决方案,但我不知道如何完成这项工作,我有这个错误:

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)

asynchronous rxjs angular angular-reactive-forms

0
推荐指数
1
解决办法
2721
查看次数