Javascript Angular UI引导模式正在复制事件侦听器,不确定原因
我试图在angular ui引导模式控制器中侦听事件,但我无法理解为什么我的模式的新实例会复制事件侦听器 在以下代码和中,重复触发测试函数会运行事件处理程序的重复版本Javascript Angular UI引导模式正在复制事件侦听器,不确定原因,javascript,angularjs,angular-ui-bootstrap,Javascript,Angularjs,Angular Ui Bootstrap,我试图在angular ui引导模式控制器中侦听事件,但我无法理解为什么我的模式的新实例会复制事件侦听器 在以下代码和中,重复触发测试函数会运行事件处理程序的重复版本 var app = angular.module('plunker', [ 'ui.bootstrap' ]); app.controller('ModalInstanceCtrl', function($scope, $modalInstance) { $scope.$on("test", function(ev
var app = angular.module('plunker', [
'ui.bootstrap'
]);
app.controller('ModalInstanceCtrl', function($scope, $modalInstance) {
$scope.$on("test", function(event, x) {
console.log("Test! " + x);
});
})
app.controller('MainCtrl', function($rootScope, $scope, $modal,$timeout) {
$scope.name = 'World';
$scope.test = function() {
var modalInstance = $modal.open({
backdrop: 'static',
templateUrl: 'modal.tpl.html',
controller: 'ModalInstanceCtrl'
});
var sequence = $timeout(function(){});
[1,2,3,4,5].forEach(function(x) {
sequence = sequence.then(function() {
return $timeout(function() {
$rootScope.$broadcast("test", x);
}, 1000);
});
});
sequence.then(function() {
modalInstance.dismiss('complete');
});
}
});
这是ui bootstrap版本0.10.0中的一个已知(已修复)错误,模式范围在模式窗口关闭后不会被破坏:起初,我只是在ui-bootstrap.js中添加了这个小更改,但没有任何效果。然后,我在主分支上构建了自己的快照,这似乎正确地销毁了作用域。