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

时间:2016-02-06 22:13:37

标签: validation typescript angular

我尝试在自定义验证程序中使用服务来检查用户名是否已存在。

module List=ListLabels

它不起作用。在characterNameValidator中,'这个'引用控件而不是我的类。该服务未定义。如何在验证器中使用我的服务?

更全局,我如何在自定义验证器中传递参数?

2 个答案:

答案 0 :(得分:6)

您需要控制this验证中的含义。您可以使用bind

执行此操作
this.name = fb.control('', this.characterNameValidator.bind(this));

其他一切应该按预期工作。

答案 1 :(得分:4)

您可以使用箭头功能来保持上下文相同。

this.name = fb.control('', (control: Control) => this.characterNameValidator(control));