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

基林

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

import {Component} from 'angular2/core';
import {
    Control,
    ControlGroup,
    FormBuilder
} from "angular2/common";
import {CharacterService} from "./character-service";

@Component({
    selector: 'register-character-form',
    template: `
        <h2 class="ui header">A new adventurer is coming...</h2>
        <form (ngSubmit)="register()" [ngFormModel]="characterForm" class="ui form">
            <div class="field">
                <label>Nom</label>
                <input ngControl="name">
            </div>
            <button type="submit" class="ui button">Enter in the adventure</button>
        </form>
    `,
    providers: [CharacterService]
})
export class RegisterCharacterFormCmp {
    characterForm: ControlGroup;
    name: Control;

    constructor(private _characterService: CharacterService, fb: FormBuilder) {
        this.name = fb.control('', this.characterNameValidator);

        this.characterForm = fb.group({
            name: this.name
        });
    }

    register(): void {
        //TODO: To implement
    }

    // Not works, this binds the control
    characterNameValidator(control: Control) {
        return this._characterService.isCharacterNameAlreadyExists(control.value) ? {nameCharacterAlreadyExistsError: true} : null;
    }
}

没用 在characterNameValidator中,“ this”引用控件而不是我的类。服务未定义。如何在验证器中使用我的服务?

更全面地说,如何在自定义验证器中传递参数?

小军鼓

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

this.name = fb.control('', this.characterNameValidator.bind(this));

然后,其他所有内容都应按预期工作。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

Angular2自定义验证器未调用

来自分类Dev

Angular2自定义验证器未调用

来自分类Dev

Angular2:使用自定义装饰器或批注将提供程序注入组件吗?

来自分类Dev

打字稿:在控制器中注入自定义服务

来自分类Dev

如何在angularjs的自定义服务中注入$ cookie?

来自分类Dev

在 karma jasmine 中注入自定义服务

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

在angular2中注入单例服务

来自分类Dev

Angular2的自定义渲染器

来自分类Dev

Angular2中的自定义值访问器

来自分类Dev

Angular2中的自定义值访问器

来自分类Dev

如何在自定义验证器中使用可注入服务

来自分类Dev

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

来自分类Dev

Angular 2-自定义验证器语法

来自分类Dev

Angular 2异步自定义验证器

来自分类Dev

Angular 2-自定义验证器语法

来自分类Dev

在angular2的自定义Http中未定义注入的Logger

来自分类Dev

教义EntityManager未注入自定义验证器

来自分类Dev

如何在 SAPUI5 中注入自定义服务

来自分类Dev

Angular 2如何将自定义提供程序注入服务?

来自分类Dev

Angular2-如何将服务注入自定义异常处理程序

来自分类Dev

如何将服务注入 Angular 2+ 中的自定义 .ts 文件

来自分类Dev

如何在Laravel查询构建器中注入自定义列

来自分类Dev

如何在Laravel查询构建器中注入自定义列

来自分类Dev

Angular2模板驱动的表单:如何为自定义表单控件创建字段验证?

来自分类Dev

如何在Angular2中与其动态交互的2个组件中注入相同的服务

Related 相关文章

  1. 1

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

  2. 2

    Angular2自定义验证器未调用

  3. 3

    Angular2自定义验证器未调用

  4. 4

    Angular2:使用自定义装饰器或批注将提供程序注入组件吗?

  5. 5

    打字稿:在控制器中注入自定义服务

  6. 6

    如何在angularjs的自定义服务中注入$ cookie?

  7. 7

    在 karma jasmine 中注入自定义服务

  8. 8

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

  9. 9

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

  10. 10

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

  11. 11

    在angular2中注入单例服务

  12. 12

    Angular2的自定义渲染器

  13. 13

    Angular2中的自定义值访问器

  14. 14

    Angular2中的自定义值访问器

  15. 15

    如何在自定义验证器中使用可注入服务

  16. 16

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

  17. 17

    Angular 2-自定义验证器语法

  18. 18

    Angular 2异步自定义验证器

  19. 19

    Angular 2-自定义验证器语法

  20. 20

    在angular2的自定义Http中未定义注入的Logger

  21. 21

    教义EntityManager未注入自定义验证器

  22. 22

    如何在 SAPUI5 中注入自定义服务

  23. 23

    Angular 2如何将自定义提供程序注入服务?

  24. 24

    Angular2-如何将服务注入自定义异常处理程序

  25. 25

    如何将服务注入 Angular 2+ 中的自定义 .ts 文件

  26. 26

    如何在Laravel查询构建器中注入自定义列

  27. 27

    如何在Laravel查询构建器中注入自定义列

  28. 28

    Angular2模板驱动的表单:如何为自定义表单控件创建字段验证?

  29. 29

    如何在Angular2中与其动态交互的2个组件中注入相同的服务

热门标签

归档