@vladislav997

Как правильно передать переменую между контроллерами в AngularJs через $rootScope.$broadcast?

Подскажите, как правильно передать переменую в AngularJs через $rootScope.$broadcast?

Пробую так:
.controller('ctrl1', function($scope, $rootScope) {
        // ...
        $scope.funEvent = function(id) {
            $rootScope.$broadcast("results", id);
        };
    })

.controller('ctrl2', function($scope, $rootScope) {
        $rootScope.$on("results", function(event, id) {
            $scope.results = id;
            console.log(id);
        });
    });


Результат срабатывает, но странно. получается при первом клике, console.log вообще не выводит ничего, при втором клике выводит правильный айдишник, при третьем клике выводит тоже правильный айдишник, но уже 2 раза, при чётвертом - выводит три раза и так далее. подскажите как решить этот баг
5f9958120b030582707678.png
  • Вопрос задан
  • 17 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы