aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVojta Jina2012-02-16 22:22:06 -0800
committerVojta Jina2012-02-21 10:58:48 -0800
commit6e635012fb30905e5fe659a024864e275f1c14b5 (patch)
treed6ef5f72b89a374d0af58d547f5cd843156332ab /src
parenteb92735c9ea3e5ddc747b66d8e895b6187a5f9e0 (diff)
downloadangular.js-6e635012fb30905e5fe659a024864e275f1c14b5.tar.bz2
feat(scope): scope.$emit/$broadcast return the event object, add cancelled property
Diffstat (limited to 'src')
-rw-r--r--src/service/scope.js10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/service/scope.js b/src/service/scope.js
index 4abf96f1..9b9e9215 100644
--- a/src/service/scope.js
+++ b/src/service/scope.js
@@ -585,12 +585,12 @@ function $RootScopeProvider(){
$emit: function(name, args) {
var empty = [],
namedListeners,
- canceled = false,
scope = this,
event = {
name: name,
targetScope: scope,
- cancel: function() {canceled = true;}
+ cancel: function() {event.cancelled = true;},
+ cancelled: false
},
listenerArgs = concat([event], arguments, 1),
i, length;
@@ -601,7 +601,7 @@ function $RootScopeProvider(){
for (i=0, length=namedListeners.length; i<length; i++) {
try {
namedListeners[i].apply(null, listenerArgs);
- if (canceled) return;
+ if (event.cancelled) return event;
} catch (e) {
$exceptionHandler(e);
}
@@ -609,6 +609,8 @@ function $RootScopeProvider(){
//traverse upwards
scope = scope.$parent;
} while (scope);
+
+ return event;
},
@@ -662,6 +664,8 @@ function $RootScopeProvider(){
}
}
} while ((current = next));
+
+ return event;
}
};