Angular 表单自定义验证数据

贸发局

我当前的 Angular 4.4 项目的一部分需要对某些表单字段进行自定义验证。将几个示例拼凑在一起,我创建了一个运行良好的测试验证指令。目前情况如下:

import ...

function validateNameNotChrisFactory(coreDataService: CoreDataService) {

    return (c: FormControl) => {

        let formControlValue = "";
        const nameToCheckFor = "Chris";
        let isValid = false;
        let errorMessage = "Must not be Chris";

        if (c != null) {
            formControlValue = c.value;

            if (c.value != null) {
                console.log("Name entered: " + formControlValue);

                if (formControlValue.indexOf(nameToCheckFor) !== -1) {

                    // The form control's value is INVALID.
                    isValid = false;

                } else {
                    isValid = true;
                };
            };
        };

        const message = {
            'validateNameNotChris': {
                'message': errorMessage
            }
        };

        // If isValid == true then return null, else return message.
        return isValid ? null : message;

    };
};

@Directive({
    selector: '[validateNameNotChris][ngModel],[validateNameNotChris][formControl]',
    providers: [
        {
            provide: NG_VALIDATORS,
            useExisting: forwardRef(() => NameNotChrisValidatorDirective),
            multi: true
        }
    ]
})
export class NameNotChrisValidatorDirective {

    validator: Function;

    constructor(coreDataService: CoreDataService) {
        this.validator = validateNameNotChrisFactory(coreDataService);
    };

    validate(c: FormControl) {
        return this.validator(c);
    };
};

我似乎无法弄清楚如何将一些数据或单个值传递到指令中,以便我可以使验证指令不那么具体并更多地重用它。例如,如何在我的示例中传入要测试的名称,而不是将测试名称“Chris”硬编码到其中?

任何的建议都受欢迎。

拉胡尔·辛格

利用Input()指令内的输入标签即事件发射器将模板中的值获取到指令中并使其通用。

苏格兰威士忌的这篇文章会让你的事情变得更容易https://scotch.io/tutorials/how-to-implement-a-custom-validator-directive-confirm-password-in-angular-2

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何应用自定义表单验证[Angular]

来自分类Dev

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

来自分类Dev

Angular 5 表单自定义验证无法正常工作

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

Angular 2自定义表单验证不会阻止onSubmit的调用

来自分类Dev

将参数传递给Angular 7模板驱动的表单自定义验证器

来自分类Dev

Angular自定义表单验证器使用其他控件

来自分类Dev

Angular Reactive Forms:是否可以创建包含“必须具备”验证的自定义表单控件组件?

来自分类Dev

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

来自分类Dev

带有自定义用户数据的 Angular Firebase Google 身份验证

来自分类Dev

使用Angular自动验证添加自定义验证

来自分类Dev

DevExtreme Angular2 表单的自定义标签

来自分类Dev

在 Angular 中创建自定义表单输入

来自分类Dev

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

来自分类Dev

Angular 2-自定义验证器语法

来自分类Dev

Angular2自定义验证器未调用

来自分类Dev

Angular 2异步自定义验证器

来自分类Dev

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

来自分类Dev

Angular2自定义验证器未调用

来自分类Dev

Angular 2-自定义验证器语法

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何编写依赖于Angular2中当前组件的属性值的自定义表单验证器(由模型驱动)

来自分类Dev

在Angular中自定义筛选共享数据

来自分类Dev

VBA表单中的自定义数据验证

来自分类Dev

如何在Angular 2.0中创建自定义验证指令(即验证属性)?

来自分类Dev

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

Related 相关文章

  1. 1

    如何应用自定义表单验证[Angular]

  2. 2

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

  3. 3

    Angular 5 表单自定义验证无法正常工作

  4. 4

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

  5. 5

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

  6. 6

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

  7. 7

    Angular 2自定义表单验证不会阻止onSubmit的调用

  8. 8

    将参数传递给Angular 7模板驱动的表单自定义验证器

  9. 9

    Angular自定义表单验证器使用其他控件

  10. 10

    Angular Reactive Forms:是否可以创建包含“必须具备”验证的自定义表单控件组件?

  11. 11

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

  12. 12

    带有自定义用户数据的 Angular Firebase Google 身份验证

  13. 13

    使用Angular自动验证添加自定义验证

  14. 14

    DevExtreme Angular2 表单的自定义标签

  15. 15

    在 Angular 中创建自定义表单输入

  16. 16

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

  17. 17

    Angular 2-自定义验证器语法

  18. 18

    Angular2自定义验证器未调用

  19. 19

    Angular 2异步自定义验证器

  20. 20

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

  21. 21

    Angular2自定义验证器未调用

  22. 22

    Angular 2-自定义验证器语法

  23. 23

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

  24. 24

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

  25. 25

    如何编写依赖于Angular2中当前组件的属性值的自定义表单验证器(由模型驱动)

  26. 26

    在Angular中自定义筛选共享数据

  27. 27

    VBA表单中的自定义数据验证

  28. 28

    如何在Angular 2.0中创建自定义验证指令(即验证属性)?

  29. 29

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

热门标签

归档