广播存在多久?

How long does broadcast exist?

我的页面上有一个按钮。当用户点击我的按钮时,执行以下代码:

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();
   });
}

我只是想知道这个听众"exists"多久了?它是否在 loadDetails() 被触发时被销毁?

因为您已经在 $rootScope 上定义了事件,所以您应该在 $rootScope 而不是 $scope 上监听相同的事件。此外,由于您在 $scope 上定义了侦听器,因此随着包含控制器的范围被销毁,侦听器也会被销毁,即 CustomerCtrl.