@@ -375,7 +375,7 @@ var ngBindAttrDirective = ['$interpolate', function($interpolate) {
375375 *
376376 * @element ANY
377377 * @param {expression } expression {@link guide/dev_guide.expressions Expression } to evaluate upon
378- * click.
378+ * click. (Event object is available as `$event`)
379379 *
380380 * @example
381381 <doc:example>
@@ -399,20 +399,22 @@ var ngBindAttrDirective = ['$interpolate', function($interpolate) {
399399 * expressions and are compiled and executed within the current scope.
400400 *
401401 * Events that are handled via these handler are always configured not to propagate further.
402- *
403- * TODO: maybe we should consider allowing users to control event propagation in the future.
404402 */
405403var ngEventDirectives = { } ;
406404forEach (
407405 'click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave' . split ( ' ' ) ,
408406 function ( name ) {
409407 var directiveName = directiveNormalize ( 'ng-' + name ) ;
410- ngEventDirectives [ directiveName ] = valueFn ( function ( scope , element , attr ) {
411- element . bind ( lowercase ( name ) , function ( event ) {
412- scope . $apply ( attr [ directiveName ] ) ;
413- event . stopPropagation ( ) ;
414- } ) ;
415- } ) ;
408+ ngEventDirectives [ directiveName ] = [ '$parse' , function ( $parse ) {
409+ return function ( scope , element , attr ) {
410+ var fn = $parse ( attr [ directiveName ] ) ;
411+ element . bind ( lowercase ( name ) , function ( event ) {
412+ scope . $apply ( function ( ) {
413+ fn ( scope , { $event :event } ) ;
414+ } ) ;
415+ } ) ;
416+ } ;
417+ } ] ;
416418 }
417419) ;
418420
@@ -425,7 +427,7 @@ forEach(
425427 *
426428 * @element ANY
427429 * @param {expression } expression {@link guide/dev_guide.expressions Expression } to evaluate upon
428- * dblclick.
430+ * dblclick. (Event object is available as `$event`)
429431 *
430432 * @example
431433 * See {@link angular.module.ng.$compileProvider.directive.ng:click ng:click}
@@ -441,7 +443,7 @@ forEach(
441443 *
442444 * @element ANY
443445 * @param {expression } expression {@link guide/dev_guide.expressions Expression } to evaluate upon
444- * mousedown.
446+ * mousedown. (Event object is available as `$event`)
445447 *
446448 * @example
447449 * See {@link angular.module.ng.$compileProvider.directive.ng:click ng:click}
@@ -457,7 +459,7 @@ forEach(
457459 *
458460 * @element ANY
459461 * @param {expression } expression {@link guide/dev_guide.expressions Expression } to evaluate upon
460- * mouseup.
462+ * mouseup. (Event object is available as `$event`)
461463 *
462464 * @example
463465 * See {@link angular.module.ng.$compileProvider.directive.ng:click ng:click}
@@ -472,7 +474,7 @@ forEach(
472474 *
473475 * @element ANY
474476 * @param {expression } expression {@link guide/dev_guide.expressions Expression } to evaluate upon
475- * mouseover.
477+ * mouseover. (Event object is available as `$event`)
476478 *
477479 * @example
478480 * See {@link angular.module.ng.$compileProvider.directive.ng:click ng:click}
@@ -488,7 +490,7 @@ forEach(
488490 *
489491 * @element ANY
490492 * @param {expression } expression {@link guide/dev_guide.expressions Expression } to evaluate upon
491- * mouseenter.
493+ * mouseenter. (Event object is available as `$event`)
492494 *
493495 * @example
494496 * See {@link angular.module.ng.$compileProvider.directive.ng:click ng:click}
@@ -504,7 +506,7 @@ forEach(
504506 *
505507 * @element ANY
506508 * @param {expression } expression {@link guide/dev_guide.expressions Expression } to evaluate upon
507- * mouseleave.
509+ * mouseleave. (Event object is available as `$event`)
508510 *
509511 * @example
510512 * See {@link angular.module.ng.$compileProvider.directive.ng:click ng:click}
@@ -520,7 +522,7 @@ forEach(
520522 *
521523 * @element ANY
522524 * @param {expression } expression {@link guide/dev_guide.expressions Expression } to evaluate upon
523- * mousemove.
525+ * mousemove. (Event object is available as `$event`)
524526 *
525527 * @example
526528 * See {@link angular.module.ng.$compileProvider.directive.ng:click ng:click}
0 commit comments