angular ngClick阻止冒泡使用默认行为的方法

前端之家收集整理的这篇文章主要介绍了angular ngClick阻止冒泡使用默认行为的方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例讲述了angular ngClick阻止冒泡使用默认行为的方法分享给大家供大家参考,具体如下:

这其实是一个很简单的问题,如果你认真查看过Angular官方的API文档,本来不想记录的。但是这个问题不止一次的被人问起,所以今天在记录在这里。

在Angular中已经对一些ng事件如ngClick,ngBlur,ngCopy,ngCut,ngDblclick...中加入了一个变量叫做$event.

如ngClick在官方文档是这么描述的:

在查看Angular代码ngEventDirs.js:

SEOver mouSEOut mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste'.split(' '),function(name) { var directiveName = directiveNormalize('ng-' + name); ngEventDirectives[directiveName] = ['$parse',function($parse) { return { compile: function($element,attr) { var fn = $parse(attr[directiveName]); return function(scope,element,attr) { element.on(lowercase(name),function(event) { scope.$apply(function() { fn(scope,{$event:event}); }); }); }; } }; }]; } );

在上边代码我们可以得到两个信息:

支持的event: click dblclick mousedown mouseup mouSEOver mouSEOut mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste

函数时候传入了一个名叫$event的常量,该常量即代表当前event对象,如果你在Angular之前引入了jQuery那么这就是jQuery的event.

所以我们可以利用event的stopPropagation来阻止事件的冒泡:如下代码:jsbin

html 代码

猜你在找的JavaScript相关文章