見出し画像

Angularのバリデータ関数は値が変わるたびに呼び出される

以下公式に書いてある通りなのですが、フォームの値が変わったら常にバリデータ関数が呼び出されます。

Instead of adding validators through attributes in the template, you add validator functions directly to the form control model in the component class. Angular then calls these functions whenever the value of the control changes.

なぜこんな当然なことを言っているのかというと、プログラム側で { emitEvent: false } オプション付きで値を更新した場合はバリデータは実行されない、と私が勘違いしていたからです😇

setValue('value', { emitEvent: false })

emitEvent を false にすると、statusChanges と valueChanges のイベントが発火されないというだけ。しょうもない思い込みで時間を溶かしました🧟‍♀️

これを機にsetValueの各オプションの挙動をきちんと確認しよう!ということで、サンプル作成してみました。実際に手を動かしてみたので、前よりも理解が深まった・・・気がする!


この記事が気に入ったらサポートをしてみませんか?