2016-09-04 3 views
-3

Буду признателен, если кто-нибудь может предоставить какой-либо реальный пример, который может помочь мне взломать интервью.

+0

Если кто-то дает отрицательный ответ, пожалуйста, поделитесь своими взглядами. Я спросил любой сценарий реальной жизни, где мы должны использовать $ apply и $ digest. , если у вас нет ни одного мнения по этому вопросу, я прошу вас, пожалуйста, игнорировать этот вопрос. –

+0

Вы можете пройти через [эту ссылку] (https://github.com/angular/angular.js/wiki/When-to-use-$scope.$apply()) –

+0

«Дайте мне код» не вопрос , Вот почему вы получаете downvoted –

ответ

1

$ дайджеста будет называться после вызова $ применить

здесь исходный код

function $apply(expr) { 
try { 
return $eval(expr); 
} catch (e) { 
$exceptionHandler(e); 
} finally { 
$root.$digest(); 
} 
} 

$ применять просто убедитесь, что все изменения в значениях области видимости, были поглощены в то время как $ применять волю оцените все выражения, которые он вызовет функцию $ digest, как вы можете видеть в исходном коде.

$ digest Обрабатывает всех наблюдателей текущего объема и его детей. Поскольку слушатель наблюдателя может изменить модель, $ digest() продолжает называть наблюдателей, пока больше не слушаются слушатели.

Если у вас есть какое-либо выражение в приложении, которое необходимо оценить перед циклом дайджест, тогда вы должны использовать $ apply else, если хотите применить изменения, тогда вы можете использовать $ digest.

1

Разница в том, что $ apply вызовет цикл дайджеста от корня вниз, если вы вызовете $ digest, он вызовет из любой области, из которой он был вызван.

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