当前位置: 首页 > 面试题库 >

取消嵌套ng-click调用之间的事件传播的最佳方法是什么?

堵恺
2023-03-14
问题内容

这是一个例子。假设我想像许多网站一样覆盖图片。因此,当您单击缩略图时,整个窗口上方会出现一个黑色的叠加层,并且较大的图像版本位于其中。单击黑色覆盖将其关闭;单击该图像将调用显示下一张图像的函数。

的HTML:

<div ng-controller="OverlayCtrl" class="overlay" ng-click="hideOverlay()">
    <img src="http://some_src" ng-click="nextImage()"/>
</div>

JavaScript:

function OverlayCtrl($scope) {
    $scope.hideOverlay = function() {
        // Some code to hdie the overlay
    }
    $scope.nextImage = function() {
        // Some code to find and display the next image
    }
}

问题是,这种设置,如果你点击图片,都nextImage()hideOverlay()被调用。但是我想要的只是nextImage()被称为。

我知道您可以使用以下nextImage()功能捕获和取消事件:

if (window.event) {
    window.event.stopPropagation();
}

…但是我想知道是否有更好的AngularJS方法,不需要我用此代码段在叠加层内的元素上添加所有函数的前缀。


问题答案:

@JosephSilber所说的,或者将$ event对象传递给ng-click回调并停止其内部的传播:

<div ng-controller="OverlayCtrl" class="overlay" ng-click="hideOverlay()">
  <img src="http://some_src" ng-click="nextImage($event)"/>
</div>



$scope.nextImage = function($event) {
  $event.stopPropagation();
  // Some code to find and display the next image
}


 类似资料:
  • 问题内容: 我有一个本质上相当于嵌套字典的数据结构。假设它看起来像这样: 现在,维护和创建它非常痛苦。每当我有一个新的州/县/专业时,我都必须通过讨厌的块创建较低层的字典。此外,如果要遍历所有值,则必须创建烦人的嵌套迭代器。 我也可以使用元组作为键,例如: 这使得对值的迭代非常简单自然,但是在语法上进行诸如汇总和查看字典子集之类的操作在语法上更加痛苦(例如,如果我只是想逐个查看状态的话)。 基本上

  • 问题内容: 我想在程序执行其他操作时监听服务器,但是从服务器收到消息后,我想对其进行解释。 我知道线程,但是不能完全确定它是如何工作的。如果我有一个线程正在监听服务器,如何将数据传递到主线程进行解释?主线程将数据发送到服务器的最佳方法是什么?同步修饰符的用途是什么? 问题答案: 如果我有一个线程正在监听服务器,如何将数据传递到主线程进行解释?主线程将数据发送到服务器的最佳方法是什么? 我会为此使用

  • 问题内容: 我无法理解和传播策略之间的行为差​​异。在我看来,在这两种情况下,当前过程都是回滚的,而不是整个事务。有什么线索吗? 问题答案: 看到此链接:PROPAGATION_NESTED与PROPAGATION_REQUIRES_NEW?Juergen Hoeller对此进行了很好的解释。- 春季高峰论坛是完全脱机SICE 2019 2月28日,但你可以在下面的报价阅读文章的相关部分 PROP

  • 问题内容: 打破Javascript中的嵌套循环的最佳方法是什么? 问题答案: 就像Perl一样 如EMCA-262第12.12节所定义。[MDN文件] 与C不同,这些标签只能用于和,而Javascript没有。

  • 本文向大家介绍在事件侦听上调用event.preventDefault()的最佳方式是什么?相关面试题,主要包含被问及在事件侦听上调用event.preventDefault()的最佳方式是什么?时的应答技巧和注意事项,需要的朋友参考一下 在事件侦听上调用event.preventDefault()的最佳方式是什么?

  • 以公司的rest表示为例。在这个假设的例子中,每个公司拥有0个或更多的部门,每个部门拥有0个或更多的员工。 一个部门不能没有关联公司。 没有关联部门,员工就无法存在。 null 但是,如果我想列出()所有公司的所有员工,我的困难就来了。 其资源模式将最紧密地映射到(所有员工的集合) 这是否意味着我应该有,因为如果有的话,那么有两个URI可以获得相同的资源? 在基本级别上,返回与嵌套最深的模式完全相