如果使用Angular 6,是否需要自定义客户端验证?

时间:2018-07-23 14:31:26

标签: angular forms validation

我是Angular 6的新用户(肯定是Angular Platform的总..),并且存在以下问题。我知道Angular 6使用了非常强大的客户端用户输入验证方法。因此,除了这些标准方法之外,我们是否需要使用其他任何客户端验证方法(用于标准问题,例如数字,电子邮件地址,特殊字符,必填字段等)?谢谢您的帮助。

2 个答案:

答案 0 :(得分:0)

这完全取决于您的要求。例如,如果您有不同的电子邮件验证方案,但是Angular提供了其他不符合您要求的方案,那么您必须为其编写自定义验证。这就是Angular还提供编写here的自定义验证方法的原因。

答案 1 :(得分:0)

角度

  

提供一组可供表单使用的内置验证器   控件

https://angular.io/api/forms/Validators

对于许多应用程序来说,这些验证器可能就足够了,但是Angular还可以让您定义自己的验证器。我需要一个验证器来确定输入的数字是否有效:

    static numValidator(): ValidatorFn {
        return (control: AbstractControl): { [key: string]: any } => {
            if (!control) {
                return {};
            }
            const value = control.value;

            if (!value) {
                return {};
            }
            else if (isNaN(parseFloat(value)) || !isFinite(value)) {
                return { 'number': true }
            }

            return {};
        };
    }

像这样使用:

inputYear: [, [FormUtils.numValidator(), FormUtils.numLengthValidator(4)]],

验证消息:

validationMessages = {
    inputYear: { number: 'Must be a number', length: 'Must be 4 digits' }
}