我的页面上有一个按钮。当用户点击我的按钮时,将执行以下代码:
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上定义了侦听器一样,侦听器也会随着包含控制器的作用域(即CustomerCtrl
(的销毁而销毁。