【问题标题】:Group validation vs control validation in Angular formsAngular 表单中的组验证与控件验证
【发布时间】:2018-02-04 15:43:48
【问题描述】:

我的 Angular 表单中有一个表单组。我想将自定义“黑名单”验证器应用于整个组,而不是每个字段。

是否有适当的方法来检查每个字段是否通过验证器而不将其应用于每个控制器?我想这将是验证组而不是单独验证每个字段。这可能吗?

现在我在做:

this.form = this.fb.group({
    firstName: ['Ben', [Validators.required, AlphaValidator]],
    lastName: this.fb.control('Racicot', [Validators.required, Validators.maxLength(30), AlphaValidator.invalidAlpha ]),
}, { validator: Blacklist });

但是我遇到了错误。大概是因为我拥有的黑名单验证器不是针对一个组,而是一个控件。我应该专注于更改验证器以检查表单中的每个控件还是进行不同的组验证?

这是我构建的验证器:

import { AbstractControl } from '@angular/forms';

const blacklist = [ // bunch of bad words ];

export function Blacklist(control: AbstractControl) {

    let comment = control.value.split(' ');

    // blacklist.includes(comment[i]); // es6
    for (let i = 0, j = comment.length; i < j; i++ ) {
        if (blacklist.indexOf(comment[i]) > -1) {
            console.log(comment[i]);
            return true;
        } else {
            return false;
        }
    }
}

【问题讨论】:

    标签: javascript angular validation angular-forms


    【解决方案1】:

    你应该像这样返回一个错误对象: 返回{有效:假};如果验证失败。如果成功,则返回 null。

    【讨论】:

      猜你喜欢
      • 2022-12-22
      • 1970-01-01
      • 1970-01-01
      • 2017-12-31
      • 1970-01-01
      • 1970-01-01
      • 2016-08-19
      • 2017-10-11
      • 1970-01-01
      相关资源
      最近更新 更多