diff options
| author | Misko Hevery | 2012-02-06 21:56:35 -0800 | 
|---|---|---|
| committer | Misko Hevery | 2012-02-21 22:46:00 -0800 | 
| commit | 1752c8c44a7058e974ef208e583683eac8817789 (patch) | |
| tree | a8d49ecfd96e739f2de12a9b71385b46ad3c0cf7 /src | |
| parent | 6216dc046510204bafd159dba17ce0cc22db6c08 (diff) | |
| download | angular.js-1752c8c44a7058e974ef208e583683eac8817789.tar.bz2 | |
feat(directive): event now accessible as $event
Closes 259
Diffstat (limited to 'src')
| -rw-r--r-- | src/directives.js | 34 | 
1 files changed, 18 insertions, 16 deletions
diff --git a/src/directives.js b/src/directives.js index 47a6ef56..c6cc0b15 100644 --- a/src/directives.js +++ b/src/directives.js @@ -375,7 +375,7 @@ var ngBindAttrDirective = ['$interpolate', function($interpolate) {   *   * @element ANY   * @param {expression} expression {@link guide/dev_guide.expressions Expression} to evaluate upon - * click. + * click. (Event object is available as `$event`)   *   * @example     <doc:example> @@ -399,20 +399,22 @@ var ngBindAttrDirective = ['$interpolate', function($interpolate) {   * expressions and are compiled and executed within the current scope.   *   * Events that are handled via these handler are always configured not to propagate further. - * - * TODO: maybe we should consider allowing users to control event propagation in the future.   */  var ngEventDirectives = {};  forEach(    'click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave'.split(' '),    function(name) {      var directiveName = directiveNormalize('ng-' + name); -    ngEventDirectives[directiveName] = valueFn(function(scope, element, attr) { -      element.bind(lowercase(name), function(event) { -        scope.$apply(attr[directiveName]); -        event.stopPropagation(); -      }); -    }); +    ngEventDirectives[directiveName] = ['$parse', function($parse) { +      return function(scope, element, attr) { +        var fn = $parse(attr[directiveName]); +        element.bind(lowercase(name), function(event) { +          scope.$apply(function() { +            fn(scope, {$event:event}); +          }); +        }); +      }; +    }];    }  ); @@ -425,7 +427,7 @@ forEach(   *   * @element ANY   * @param {expression} expression {@link guide/dev_guide.expressions Expression} to evaluate upon - * dblclick. + * dblclick. (Event object is available as `$event`)   *   * @example   * See {@link angular.module.ng.$compileProvider.directive.ng:click ng:click} @@ -441,7 +443,7 @@ forEach(   *   * @element ANY   * @param {expression} expression {@link guide/dev_guide.expressions Expression} to evaluate upon - * mousedown. + * mousedown. (Event object is available as `$event`)   *   * @example   * See {@link angular.module.ng.$compileProvider.directive.ng:click ng:click} @@ -457,7 +459,7 @@ forEach(   *   * @element ANY   * @param {expression} expression {@link guide/dev_guide.expressions Expression} to evaluate upon - * mouseup. + * mouseup. (Event object is available as `$event`)   *   * @example   * See {@link angular.module.ng.$compileProvider.directive.ng:click ng:click} @@ -472,7 +474,7 @@ forEach(   *   * @element ANY   * @param {expression} expression {@link guide/dev_guide.expressions Expression} to evaluate upon - * mouseover. + * mouseover. (Event object is available as `$event`)   *   * @example   * See {@link angular.module.ng.$compileProvider.directive.ng:click ng:click} @@ -488,7 +490,7 @@ forEach(   *   * @element ANY   * @param {expression} expression {@link guide/dev_guide.expressions Expression} to evaluate upon - * mouseenter. + * mouseenter. (Event object is available as `$event`)   *   * @example   * See {@link angular.module.ng.$compileProvider.directive.ng:click ng:click} @@ -504,7 +506,7 @@ forEach(   *   * @element ANY   * @param {expression} expression {@link guide/dev_guide.expressions Expression} to evaluate upon - * mouseleave. + * mouseleave. (Event object is available as `$event`)   *   * @example   * See {@link angular.module.ng.$compileProvider.directive.ng:click ng:click} @@ -520,7 +522,7 @@ forEach(   *   * @element ANY   * @param {expression} expression {@link guide/dev_guide.expressions Expression} to evaluate upon - * mousemove. + * mousemove. (Event object is available as `$event`)   *   * @example   * See {@link angular.module.ng.$compileProvider.directive.ng:click ng:click}  | 
