AngularJSのスコープ$watch
オブジェクトには、スコープ プロパティを「監視」するために呼び出される特別なメソッドがあります。
モデルの新しい値と古い値を受け取るコールバックを受け入れます。
$scope.$watch('modelName', function(newValue, oldValue){
// Do anything you like here
});
コールバックは初期化時およびモデルが変更されるたびに行われます。したがって、次のように等値チェックを追加するとよいでしょう。
$scope.$watch('modelName', function(newValue, oldValue){
// Check if value has changes
if(newValue === oldValue){
return;
}
// Do anything you like here
});
これにより、モデルを「監視」し、必要に応じて何らかのアクションを実行できます。
追加の注意: オブジェクトを含むモデルを監視している場合は、参照ではなくオブジェクトの等価性によって両方の値を比較するように AngularJS に指示する追加の 3 番目のパラメーターを使用する必要があります (参照は変更されないため、ウォッチャーはトリガーされません)。 ) このような:
$scope.$watch('modelName', function(newValue, oldValue){
// Do anything you like here
}, true); // Add extra 'true' parameter to check for object equality
AngularJS スコープページで詳細なドキュメントを読むことができます。
それが役立つことを願っています!