編集 (2013 年 7 月 18 日): あなたの提案に従って、コードを少し変更しました。この例は、$watch がどのように機能するかを確認するための簡単なテストです。変数を設定し、その変数に $watch を定義してから、監視対象の変数を 2 回更新しています。$watch は 1 回しか呼び出されないようですが、3 回呼び出されると予想されます (最初の呼び出しを含めて、最初の呼び出しをオプションにする方法も考えています)。
$scope.name = 'World'; //initial assignment
$scope.count = 0;
$scope.$watch('name', function(){
$scope.count++;
});
$scope.name = 'Bob';//should increment the value to 2
$scope.name = 'Jane';//should increment the value to 3
このコードの実行後に $scope.count が 1 になるのはなぜですか?
元のリクエスト: このhttp://plnkr.co/edit/Pcwaci5oQ0ANIslPlPmdplunker
では、カウント変数、名前変数を設定し、内でonを定義しています。$watch
$scope
controller
count の値が最終的に 1 に解決されることを期待していますが、初期化から変更されていません。