Как долго существует трансляция?

0

У меня есть кнопка на моей странице. Когда пользователь нажимает на мою кнопку, выполняется следующий код:

as.controller('CustSummary', function($scope, $rootScope, $http, $routeParams, $location)
{
         var loadAbbDetails = function()
        {
            $rootScope.$broadcast('loadDetails');
        }

        $scope.viewAbbDetails = function()
        {
            loadAbbDetails();
        }
}

Я подключил прослушиватель для "loadDetails". В другом контроллере:

as.controller('CustomerCtrl', function($scope, $rootScope, $http, $routeParams, $location)
{
  var loadDetails = function()
  {
     $scope.include = 'partials/customer/customerabbdetails.html';
  };

   $scope.$on("loadDetails",function(event,args) {
      loadDetails();
   });
}

Мне просто интересно, как долго этот слушатель "существует"? Разрушен ли он при запуске loadDetails()?

  • 0
    Слушатель будет оставаться и прослушивать дальнейшие события loadDetails даже после выполнения.
  • 0
    @Fissio: Фиссио: Окей. Потому что я пытался использовать это в другом контроллере, как это: pastebin.com/jwYgdBcE, но ничего не происходит
Теги:
broadcast

1 ответ

0
Лучший ответ

Поскольку вы определили событие на $ rootScope, вы должны слушать то же самое на $ rootScope вместо $ scope. Кроме того, поскольку вы определили слушателя в области $ scope, слушатель уничтожается так же, как и область содержимого контроллера, уничтоженного,.ie, CustomerCtrl.

  • 0
    Спасибо. Я изменил это сейчас. Но как я могу снова запустить функцию loadDetails () с другого контроллера?
  • 0
    Снова используя - $ rootScope. $ Broadcast ('loadDetails'); и если вы используете $ rootScope.on, то он будет прослушиваться везде
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню