From 84542d2431d20de42d6ec27c9d3435dd72dbe2ee Mon Sep 17 00:00:00 2001 From: Vojta Jina Date: Fri, 27 Apr 2012 17:31:11 +0200 Subject: feat(scope): add event.preventDefault() and event.defaultPrevented --- src/ng/rootScope.js | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/ng/rootScope.js b/src/ng/rootScope.js index 5bd65214..bb12362b 100644 --- a/src/ng/rootScope.js +++ b/src/ng/rootScope.js @@ -618,6 +618,8 @@ function $RootScopeProvider(){ * - `name` - {string}: Name of the event. * - `stopPropagation` - {function=}: calling `stopPropagation` function will cancel further event propagation * (available only for events that were `$emit`-ed). + * - `preventDefault` - {function}: calling `preventDefault` sets `defaultPrevented` flag to true. + * - `defaultPrevented` - {boolean}: true if `preventDefault` was called. */ $on: function(name, listener) { var namedListeners = this.$$listeners[name]; @@ -662,7 +664,11 @@ function $RootScopeProvider(){ event = { name: name, targetScope: scope, - stopPropagation: function() {stopPropagation = true;} + stopPropagation: function() {stopPropagation = true;}, + preventDefault: function() { + event.defaultPrevented = true; + }, + defaultPrevented: false }, listenerArgs = concat([event], arguments, 1), i, length; @@ -712,8 +718,14 @@ function $RootScopeProvider(){ var target = this, current = target, next = target, - event = { name: name, - targetScope: target }, + event = { + name: name, + targetScope: target, + preventDefault: function() { + event.defaultPrevented = true; + }, + defaultPrevented: false + }, listenerArgs = concat([event], arguments, 1); //down while you can, then up and next sibling or up and next sibling until back at root -- cgit v1.2.3