Angular 2异步自定义验证器

xmaestro

我正在尝试实现异步自定义验证,并且我具有以下验证类

export class CustomValidators{
_auth_service;
constructor(auth_service:AuthService){
    this._auth_service = auth_service;
}

usernameTaken(control: Control) {
    console.log(this._auth_service);
    let q = new Promise<ValidationResult>((resolve, reject) => {
    this._auth_service.emailtaken('email='+control.value).subscribe(data=>{
            var result = data.json().result;
            console.log(result);
            if(result===true){
                resolve({"usernameTaken": data});
            }else{
                resolve(null);
            }
        });
});
return q;
}

}

在我的组件中

this.customValidators = new CustomValidators(this._auth_service);

我将其添加到窗体控件中,如下所示

this.emailControl = new Control('',Validators.compose([Validators.required, Validators.pattern(ConfigService.EMAIL_REGEX)]),this.customValidators.usernameTaken); 

您可以看到我正在尝试在验证器中注入服务。然后,要在我的组件中使用验证器功能,我必须创建一个验证器对象并使用其方法。我已经调试过,看到该this._auth_service属性出现undefined在我的验证器方法中。它似乎在我的验证器构造函数中填充得很好。

我不想将验证器用作指令,据我所知,该指令使注入服务变得容易。

可能是什么问题呢?

dfsq

看起来您正在失去上下文。您应该将验证器方法显式绑定到验证器实例对象:

this.emailControl = new Control('', Validators.compose([
  Validators.required, 
  Validators.pattern(ConfigService.EMAIL_REGEX)
 ]), this.customValidators.usernameTaken.bind(this.customValidators));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular 4 - 使用异步自定义验证器

来自分类Dev

如何在Angular2 / 4/5中实现自定义异步验证器

来自分类Dev

带有参数的Angular 2自定义验证器

来自分类Dev

Angular 2-自定义验证器语法

来自分类Dev

Angular2自定义验证器未调用

来自分类Dev

Angular2自定义验证器未调用

来自分类Dev

Angular 2-自定义验证器语法

来自分类Dev

异步自定义验证器不起作用并在Angular 8中显示错误消息

来自分类Dev

Http在Angular 2自定义异步验证中不起作用

来自分类Dev

如何在Dart中使用Angular2实现自定义验证器?

来自分类Dev

从Angular2中的自定义验证器访问服务

来自分类Dev

在Angular2的自定义验证器中注入服务

来自分类Dev

如何在Angular2中制作自定义验证器

来自分类Dev

将自定义验证器拆分为多个函数 Angular 2

来自分类Dev

Angular 2 - 自定义表单验证器不起作用

来自分类Dev

Angular Ractive Forms:从自定义组件获取验证器

来自分类Dev

angular - 带有 http 调用的自定义验证器

来自分类Dev

Angular 2 异步验证器

来自分类Dev

Angular 2 反应式表单自定义验证

来自分类Dev

Angular 表单自定义验证数据

来自分类Dev

Angular2的自定义渲染器

来自分类Dev

Angular2中的自定义值访问器

来自分类Dev

Angular2中的自定义值访问器

来自分类Dev

TypeError:添加自定义验证器时,无法读取未定义Angular的属性'indexOf'

来自分类Dev

Angular - 控制器中的自定义验证器功能:如何访问“this”?

来自分类Dev

验证错误消息未显示为Angular 2中的自定义验证

来自分类Dev

使用自定义验证程序ng-valid类进行Angular 2表单验证

来自分类Dev

验证错误消息未显示为Angular 2中的自定义验证

来自分类Dev

使用自定义验证程序ng-valid类进行Angular 2表单验证

Related 相关文章

  1. 1

    Angular 4 - 使用异步自定义验证器

  2. 2

    如何在Angular2 / 4/5中实现自定义异步验证器

  3. 3

    带有参数的Angular 2自定义验证器

  4. 4

    Angular 2-自定义验证器语法

  5. 5

    Angular2自定义验证器未调用

  6. 6

    Angular2自定义验证器未调用

  7. 7

    Angular 2-自定义验证器语法

  8. 8

    异步自定义验证器不起作用并在Angular 8中显示错误消息

  9. 9

    Http在Angular 2自定义异步验证中不起作用

  10. 10

    如何在Dart中使用Angular2实现自定义验证器?

  11. 11

    从Angular2中的自定义验证器访问服务

  12. 12

    在Angular2的自定义验证器中注入服务

  13. 13

    如何在Angular2中制作自定义验证器

  14. 14

    将自定义验证器拆分为多个函数 Angular 2

  15. 15

    Angular 2 - 自定义表单验证器不起作用

  16. 16

    Angular Ractive Forms:从自定义组件获取验证器

  17. 17

    angular - 带有 http 调用的自定义验证器

  18. 18

    Angular 2 异步验证器

  19. 19

    Angular 2 反应式表单自定义验证

  20. 20

    Angular 表单自定义验证数据

  21. 21

    Angular2的自定义渲染器

  22. 22

    Angular2中的自定义值访问器

  23. 23

    Angular2中的自定义值访问器

  24. 24

    TypeError:添加自定义验证器时,无法读取未定义Angular的属性'indexOf'

  25. 25

    Angular - 控制器中的自定义验证器功能:如何访问“this”?

  26. 26

    验证错误消息未显示为Angular 2中的自定义验证

  27. 27

    使用自定义验证程序ng-valid类进行Angular 2表单验证

  28. 28

    验证错误消息未显示为Angular 2中的自定义验证

  29. 29

    使用自定义验证程序ng-valid类进行Angular 2表单验证

热门标签

归档