Ответ 1
Вероятно, вы изменяете $scope вне angular $digest. Попробуйте заменить code making changes
на $scope.$apply(function(){ code making changes })
. При этом грязная проверка должна запускаться и обновлять все.
У меня есть контроллер, который прослушивает $scope. $on, который будет показывать всплывающее окно при срабатывании. Он работает в 100% случаев от нескольких других методов управления $rootScope. $Broadcast. Но один из них никогда не будет работать.
Контроллер получает событие и задает требуемую переменную $scope, но страница не обновляется, даже если я запускаю $scope. $eval(). Затем, если я перейду на другой маршрут, наконец-то отобразится область $scope, и модальный появится поверх этого маршрута. Я не могу сказать, нашел ли я ошибку в angularjs, или мне не хватает чего-то фундаментального.
Извините, я не могу включить код, это рабочий проект.
Вероятно, вы изменяете $scope вне angular $digest. Попробуйте заменить code making changes
на $scope.$apply(function(){ code making changes })
. При этом грязная проверка должна запускаться и обновлять все.
Я бы рекомендовал использовать:
$scope.$evalAsync(function() { // scope changes here });
Таким образом, вы не столкнетесь с такими проблемами, как попытка вызова, когда есть дайджест, который уже выполняется.