2016-04-18 7 views
0

$ scopeオブジェクトがウォッチャーとリスナー関数の両方の引数として提供される理由はあまり明確ではありません。 私はそれが$ダイジェスト内ウォッチャー配列を反復作品だ、トンhis bit of code on GitHubが見つかりました:舞台裏

this.$$watchers.forEach(function(watcher) { 
    var newValue = watcher.watchFn(self); 
    var oldValue = watcher.last; 

    if (watcher.deep && newValue === oldValue) { 
     deppCompare(newValue, oldValue); 
    } else { 
     if (newValue !== oldValue) dirty = true; 
    } 

    watcher.listenerFn(newValue, oldValue, self); 
    watcher.last = newValue; 
    }); 

答えて

0

は、あなたがそれ特定のスコープ内の時計機能を宣言する際、角度の関数で与えられた式を解析:

//The code of a random watcher 
$scope.$watch('myVariable', listenerFunction); 

//Behind the scenes 
$scope.$watch(function(scope){ 
    return scope.myVariable; 
}, listenerFunction); 

あなたがウォッチャー、あること舞台裏F、したがって、「でこのSCOPE、私はこのSCOPEに取り付けた変数の変化を見る必要がある」の予想行動を登録します$watch()の最初の引数returnのために解析された変数期待される変数は、ウォッチ関数がアタッチされたスコープ内の変数でなければなりません。

関連する問題