0
私は角型でフォームグループを持っています。私はカスタム "ブラックリスト"バリデーターを各フィールドではなく、グループ全体に適用したいと思います。グループ検証と角型のコントロール検証
はそれぞれすべてのフィールドは、各コントローラにそれを適用せずにバリデータを渡すことを確認するための適切な方法はありますか?私はそれが別々のフィールドの代わりにグループを検証するだろうと思う。それは可能ですか?
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;
}
}
}