Есть ли в этом смысл? Я столкнулся с ним в скрипте входа.
$scope.login = function(){
//.... call to do login stuff then
$timeout( function(){
$scope.$apply(function () {
$rootScope.displayName = val.displayName;
$rootScope.userID = authData.uid;
});
}, 100);
}
Я видел это в своем коде. Я думал, что приложение уже работает, когда была нажата кнопка. Нужно ли снова запускать его?
$timeout
запускает $scope.$apply
только он заканчивается, нет, это не имеет никакого смысла. Я предполагаю, что есть какой-то асинхронный вызов, сделанный где-то еще в вашем приложении, и этот фрагмент кода пытается дождаться завершения этого вызова, но это не так, как это должно быть сделано.
Обещания или события - это то, что следует использовать там: https://docs.angularjs.org/api/ng/service/$q
ng-click
запускает цикл дайджеста для вас ..ng-click
запускает цикл дайджеста, но имейте в виду, что он находится в$timeout
, поэтому он выходит за рамки стека событий. Тем не менее,$timeout
ТАКЖЕ выполняет цикл дайджеста (именно поэтому мы используем$timeout
вместоtimeout
), так что да, делать это не нужно.