2016-04-10 19 views
0

見ている値がアプリ内のどこにも存在しないときに$scope.$watchが呼び出される理由は何ですか?

あなたは下記見ることができるよう、関係なく、私はwatchExpressionのために割り当てるものを文字列、関数が...

$scope.$watch('kwhefjkewgfweahhfwujad' , // a bunch of random letters 
       function() 
        { console.log("it fired ... why?"); 
        } 
      ) ; 

Firefoxはすべてのエラーを示すものではありません走るん。

+0

を行うことができます。 –

+0

私はここにいます:https://docs.angularjs.org/api/ng/type/$rootScope.Scope ...しかし、私はなぜそれが呼び出されるかもしれないと私に示唆するものは表示されません... – dsdsdsdsd

+0

それは言う: *リスナーは、登録された後の最初の$ digestループ中常に呼び出されます*。 –

答えて

1

$scope.$watch('kwhefjkewgfweahhfwujad', function(val) { 
    if (val) { 
     console.log("it fired ... why?"); 
    } 
}); 

ウォッチャーは、すべてのダイジェストサイクルで実行されてみてください。スコープに付加されているプリミティブな値を見ているときに、新しい値が存在する(変更された)ことを確認する必要があります。

あなたはまた、それは$腕時計の公式ドキュメントで説明しています

$scope.$watch('kwhefjkewgfweahhfwujad', function(newVal, oldVal) { 
    if (newVal !== oldVal) { 
     console.log("it fired ... why?", newVal, oldVal); 
    } 
}); 
+0

約1時間前まで私は問題を抱えていませんでした(私はそれがちょうど泥だら質問...)私はこれが解決策であるとは思いますが、たとえそれが予期せぬ行動の変化を説明していないとしても...私は自分自身で...奇妙なことを理解しなければなりません。ありがとう、シャノン – dsdsdsdsd

関連する問題