AngularJS の強力なデータバインドを支える仕組みのうち、まず $watch について取り上げる。 $watch を使えば、監視(Observe)したいオブジェクトやプロパティが変化したときに実行する処理(リスナー)を容易に記述できる。 $watch を利用する場所は scope のある directive や controller で、ng-model や ng-bind のようなデータバインドする directive を独自に実装する場合や、モデルの変更に応じて処理をバインドする場合などに使用できる。 $digest サイクル $watch による変更検知処理は、ポーリング的(一定間隔で頻繁)に実施されるのではなく、以下のイベントが生じたときに $digest サイクル(または $digest ループ)と呼ばれる処理が実行され、その中で実行される。 イベント 概要