У меня есть кнопка на моей странице. Когда пользователь нажимает на мою кнопку, выполняется следующий код:
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()?
Поскольку вы определили событие на $ rootScope, вы должны слушать то же самое на $ rootScope вместо $ scope. Кроме того, поскольку вы определили слушателя в области $ scope, слушатель уничтожается так же, как и область содержимого контроллера, уничтоженного,.ie, CustomerCtrl
.
loadDetails
даже после выполнения.