如何防止容器中的ng-click不会被AngularJS中的元素触发
How to prevent ng-click in container not be triggered by elements inside in AngularJS
我有这样的情况:
<div ng-click="foo()">
<a ng-click="bar()">Bar</a>
<p>Lorem Ipsun</p>
</div>
我的问题是,当我点击在酒吧,foo()也被调用。如何调用只是bar()当点击在酒吧,只是调用foo()当我不点击在酒吧()?
我得到了这个问题的答案:
AngularJS ng-click stopPropagation
只需将HTML更改为:
<div ng-click="foo()">
<a ng-click="bar(); $event.stopPropagation()">Bar</a>
<p>Lorem Ipsun</p>
</div>
ngClick
在$event
变量中提供事件对象。您可以调用stopPropagation()
来阻止事件冒泡…
<div ng-click="foo()">
<a ng-click="bar($event)">Bar</a>
<p>Lorem Ipsun</p>
</div>
控制器$scope.bar = function ($event) {
$event.stopPropagation();
};
JSFiddle
使用event. stopproation()或event. stopproation()。cancelBubble = true防止事件冒泡在bar()方法中编写以下代码以防止调用foo()(父)方法
event = event || window.event // cross-browser event
if (event.stopPropagation) {
event.stopPropagation();
} else {
event.cancelBubble = true;
}
JS小提琴:http://jsfiddle.net/55sfc/1/
相关文章:
- AngularJS/HTML/Bootstrap元素用于动态搜索结果
- AngularJS指令,在元素后插入HTML
- 使用AngularJS Directive WHITOUT$scope创建一个动态html元素
- angularjs删除动态形式元素中的特殊字符
- 在AngularJs中查找元素并更改其内容
- HTML 标记未在 AngularJS ckEditor 中应用,而是在 Ediator 中显示 HTML 元素标记代码
- AngularJs的ng-click$事件将子元素作为目标传递
- 根据输入文本按元素排序,AngularJS
- 将click事件绑定到AngularJS指令中的子元素
- 从父元素AngularJS中获取多个输入字段的值
- 在不引用文档的情况下使用AngularJS获取元素
- 如何在JavaScript而不是HTML元素中设置AngularJS验证
- AngularJS:根据其他对象预先选择ng repeat中的select元素
- Angularjs元素在一个调用中同时查找select和input-这是单个标记查找的极限
- 如何在加载 AngularJS 元素后调用 JavaScript 函数
- 在浏览器控制台中访问 Angularjs 元素,如范围或指令
- Angularjs-元素上有多个指令,其中一个是隔离作用域
- Html page 不检测 angularjs 元素
- Django 响应的角度$http不渲染为 angularjs 元素
- 带ng-init的AngularJS元素指令在视图渲染之前运行