2015-03-02 2 views
2

Я видел код сегодня, который регистрировал Бодрствующего следующим образом:

scope.$watch(function() { //some code which is not relevant in current context });

угловых Documentation Позволяет задать метод $ наблюдать, как

$watch(watchExpression, listener, [objectEquality]);

так, что может быть использование наблюдателя без слушателя

Заранее спасибо

ответ

4
scope.$watch(function() { 
    //some code which is not relevant in current context 
}); 

это шаблон, который может используется для запуска кода один раз в расчете. Это эквивалентно:

scope.$watch(function(){ 
}, undefined); 

От docs:

Если вы хотите получать уведомления, когда $ дайджеста называется, вы можете зарегистрировать функцию watchExpression без каких-либо слушателем. (Поскольку watchExpression может выполнять несколько раз в $ переваривать цикл при обнаружении изменения, должны быть готовы для нескольких вызовов к вашему слушателю.)

0

Вы не потребность Выражение Вы можете использовать функцию возврата, которая вар смотреть, а не указывать его в виде строки, пример:

$scope.myVar = true; 

$scope.$watch(function() { 
    return $scope.myVar 
}, function(newValue, oldValue) { 

}); 
+0

@SurenAznauryan - Так когда же он начал выполняться? – tymeJV

+0

@SurenAznauryan - Да ... убедитесь, что код работает первым, а затем определите, когда он запущен (console.log или отладчик) – tymeJV

Смежные вопросы