Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular UI引导模式正在复制事件侦听器,不确定原因_Javascript_Angularjs_Angular Ui Bootstrap - Fatal编程技术网

Javascript 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

我试图在angular ui引导模式控制器中侦听事件,但我无法理解为什么我的模式的新实例会复制事件侦听器

在以下代码和中,重复触发测试函数会运行事件处理程序的重复版本

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中添加了这个小更改,但没有任何效果。然后,我在主分支上构建了自己的快照,这似乎正确地销毁了作用域。