どのような場合に angular$watch
関数を使用し、いつng-change
angularjs ディレクティブを使用する必要がありますか? 私にとっては、どちらも同じことができます。
それらの間に違いや使用パターンはありますか?
どのような場合に angular$watch
関数を使用し、いつng-change
angularjs ディレクティブを使用する必要がありますか? 私にとっては、どちらも同じことができます。
それらの間に違いや使用パターンはありますか?
明らかに、それらは同じではありません。1 つはコントローラーでのみ使用されます。もう 1 つは入力要素のディレクティブです。
しかし、それらのアプリケーションでさえ、それらは異なります。
監視式を使用する$watch
と、すべてのダイジェスト サイクルで評価され、変更がある場合はハンドラーが呼び出されます。
ではng-change
、ハンドラーはイベントに応答して明示的に呼び出されます。
を使用$watch
すると、変更はどこからでも発生する可能性があります: ユーザー アクション、コントローラー関数、サービス - すべてがハンドラーをトリガーします。
を使用ng-change
すると、変更は特定の入力要素に対するユーザー アクションに制限されます。
との組み合わせでのみng-change
機能することにも注意してください。つまり、式は(詳細についてはドキュメントを参照) が変更された場合にのみ評価されます。これは通常、ユーザーが開始したイベントに応答して発生します。ng-model
ng-change
ngModel.$viewValue
ngModelController