Angular で AbstractControl 内に初期値と初期値が変更されたかを確認するメソッドを追加したサンプルです。
AbstractControlDirective も拡張することで、NgModel や NgForm でも使用できます。
新規登録と編集が同じ画面でのバリデーションメッセージ表示時に使用する想定です。
AbstractControlに拡張プロパティinitValueを追加。AbstractControlに拡張メソッドisEditedを追加。valueとinitValueが異なっていたらtrueを返す。AbstractControlDirectiveに拡張メソッドisEditedを追加。AbstractControlDirectiveからAbstractControl.isEditedを呼び出す。AbstractControlDirectiveがNgFormの場合は、Form内のコントロールのisEditedが一つでもtrueの場合、trueを返す。- テンプレートからの
initValueの設定はInitValueDirective経由で設定する。
- Node.js 10.x
- Yarn 1.12.x
- TypeScript 3.2.x
- Angular 7.2.x
git clone git@github.com:yasu-s/ng-forms-ext-sample.git
cd ng-forms-ext-sample
yarn
yarn start