来自angularJS 1.1.2源代码的片段:
$emit: function(name, args) { // .... event = { name: name, targetScope: scope, stopPropagation: function() { stopPropagation = true; }, preventDefault: function() { event.defaultPrevented = true; }, defaultPrevented: false }, // ....}$broadcast: function(name, args) { // ... event = { name: name, targetScope: target, preventDefault: function() { event.defaultPrevented = true; }, defaultPrevented: false }, // ...}如您所见,$ broadcast中的事件对象没有“ stopPropagation”。
可以使用preventDefault代替stopPropagation来将事件标记为“不需要处理此事件”。这不会停止事件传播,但是会告诉子作用域:“不需要处理此事件”
示例:http://jsfiddle.net/C8EqT/1/



