gpt4 book ai didi

javascript - Angular2 中的表单异步验证

转载 作者:太空宇宙 更新时间:2023-11-04 16:05:22 25 4
gpt4 key购买 nike

我是 angular2 新手,我想验证服务器的电子邮件地址,但失败了

这是我的表格

this.userform = this._formbuilder.group({
email: ['', [Validators.required], [this._validationService.emailExistsValidator.bind(this)]],
});

然后我有 _ValidationService验证服务是带有@Injector的服务

  @Injectable()
export class ValidationService{

constructor(
private _authService:AuthService
){}

emailExistsValidator(control) {
if (control.value != undefined) {
return this._authService.checkExists("email")
.map(response => {
if (!response) {
return {'emailNotExists': true};
}
});
}
}
}

在我的 authservice 中(这是执行 http 请求的另一个服务)

@Injectable()
export class AuthService {

checkExists(value):Observable<any>{
return this._http.get(this.authurl+value)
.map(response => {
return response //this is either true or false
});
}

}

我已关注This link 在设置我的表单但失败了

返回的错误是

Cannot read property 'checkExists' of undefined
at UsersComponent.webpackJsonp.187.
ValidationService.emailExistsValidator

可能出了什么问题

最佳答案

如果this应该指向ValidationService,则需要bind()

this.userform = this._formbuilder.group({
email: ['', [Validators.required], [this._validationService.emailExistsValidator.bind(this._validationService)]],
});

关于javascript - Angular2 中的表单异步验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41921768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com