Объем AngularJS $не отображается после обновления

У меня есть контроллер, который прослушивает $scope. $on, который будет показывать всплывающее окно при срабатывании. Он работает в 100% случаев от нескольких других методов управления $rootScope. $Broadcast. Но один из них никогда не будет работать.

Контроллер получает событие и задает требуемую переменную $scope, но страница не обновляется, даже если я запускаю $scope. $eval(). Затем, если я перейду на другой маршрут, наконец-то отобразится область $scope, и модальный появится поверх этого маршрута. Я не могу сказать, нашел ли я ошибку в angularjs, или мне не хватает чего-то фундаментального.

Извините, я не могу включить код, это рабочий проект.

Ответ 1

Вероятно, вы изменяете $scope вне angular $digest. Попробуйте заменить code making changes на $scope.$apply(function(){ code making changes }). При этом грязная проверка должна запускаться и обновлять все.

Ответ 2

Я бы рекомендовал использовать:

$scope.$evalAsync(function() { // scope changes here });

Таким образом, вы не столкнетесь с такими проблемами, как попытка вызова, когда есть дайджест, который уже выполняется.