У меня есть код, который не ведет себя так, как ожидалось... У меня есть прослушиватель событий в контроллере AngularJS следующим образом:
$scope.$on("newClipSelected", function(e) {
$scope.$apply(function() {
$scope.isReady = true;
});
});
Разметка контроллера имеет ng-show = 'isReady'. Когда этот обработчик событий запускается, область ng-show показывает, как ожидалось. Однако этот обработчик событий не работает:
$scope.$on("newClipSelected", function(e) {
$scope.isReady = true;
});
С помощью этого обработчика событий, если я использую отладчик для ожидания области AngularJS, я вижу, что $scope.isReady = true, однако элемент ng-show не отображается.
Его понимание того, что $scope. $on на самом деле вызовет $watch/$, при необходимости. Итак, зачем мне призывать $apply в этом случае?
Событие запускается вызовом $rootScope. $broadcast() в несингулярном событии асинхронного завершения.