前端之家收集整理的这篇文章主要介绍了
angular ngClick阻止冒泡使用默认行为的方法,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
本文实例讲述了angular ngClick阻止冒泡使用默认行为的方法。分享给大家供大家参考,具体如下:
这其实是一个很简单的问题,如果你认真查看过Angular官方的API文档,本来不想记录的。但是这个问题不止一次的被人问起,所以今天在记录在这里。
在Angular中已经对一些ng事件如ngClick,ngBlur,ngCopy,ngCut,ngDblclick...中加入了一个变量叫做$event.
如ngClick在官方文档是这么描述的:
在查看Angular代码ngEventDirs.js:
SEOver mou
SEOut 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 代码: