angular.Scope.Event.stopPropagation不存在

时间:2016-02-16 18:27:53

标签: angularjs

在使用Jasmine / Karma测试我的应用时,我注意到在处理范围事件时有一些有趣的行为:

$scope.$on('some-event', function(event) {
  event.stopPropagation();
});

然后在我的测试中,我从$rootScope

播放了该事件
$rootScope.$broadcast('some-event');

这导致TypeError

TypeError: event.stopPropagation is not a function
at null.<anonymous>
...

1 个答案:

答案 0 :(得分:2)

事实证明,stopPropagation仅适用于通过scope.$emit而非scope.$broadcast创建的事件。

来自documentation

  

stopPropagation - {function=}:调用stopPropagation函数将取消进一步的事件传播(仅适用于$emit - ed的事件。)