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

Для передачи переменной между контроллерами в AngularJS через $rootScope.$broadcast, следует выполнить несколько шагов.

Шаг 1: Создайте контроллер-отправитель и контроллер-получатель:

app.controller('SenderController', function($rootScope) {
   var data = 'это данные, которые нужно передать';
   $rootScope.$broadcast('event:myEvent', data);
});

app.controller('ReceiverController', function($scope) {
   $scope.$on('event:myEvent', function(event, data) {
       // выполняйте необходимые действия с переданными данными
       console.log(data);
   });
});

Шаг 2: В контроллере-отправителе используйте $rootScope.$broadcast для передачи данных:

$rootScope.$broadcast('event:myEvent', data);

Шаг 3: В контроллере-получателе определите $scope.$on событие для прослушивания события:

$scope.$on('event:myEvent', function(event, data) {
   // выполняйте необходимые действия с переданными данными
   console.log(data);
});

Таким образом, при каждом вызове $rootScope.$broadcast('event:myEvent', data) в контроллере-отправителе, контроллер-получатель будет прослушивать событие и получать переданные данные.

Важно отметить, что использование $rootScope.$broadcast может считаться плохой практикой, так как оно создает жесткую связь между контроллерами и делает ваше приложение менее гибким. Рекомендуется использовать сервисы или фабрики для обмена данными между контроллерами.