【问题标题】:Angular parent and child ngHide on ngClickngClick 上的 Angular 父子 ngHide
【发布时间】:2015-02-04 02:31:59
【问题描述】:

所以我有一个进度条,点击它会展开全屏,里面有一些东西。我正在玩有角度的尝试,我似乎无法让关闭按钮切换功能正常工作。我有一个 ngClick 在父级上首先显示关闭按钮,它工作正常!但是当我点击关闭按钮时......没有任何反应......当你点击关闭按钮时,它应该隐藏关闭按钮......在我的控制器中,我将 showClose 变量设置为true......认为存在一些我不知道的范围界定问题

这是正在发生的事情的虚拟版本: http://codepen.io/anon/pen/GgMdRN?editors=101

<section ng-app="App">
  <div id="progress-container" ng-controller="ProgressCtrl">
      <div class="progress-bar" ng-click="showClose = false">
        <div class="close" ng-hide="showClose" ng-click="showClose = true" >Close</div>
      </div>
  </div>

</section>

【问题讨论】:

  • 问题是当你点击里面的div时,两次ng-click都被调用了。

标签: javascript angularjs angularjs-directive angularjs-scope


【解决方案1】:

您看到的是事件传播,它会导致子点击事件冒泡到其父容器。结果,您将看到所有父单击事件处理程序都被触发。

这应该可以解决您的问题。

脚本:

$scope.onClickClose = function(e){
  $scope.showClose = true;
  e.stopPropagation();
}

HTML:

<div class="progress-bar" ng-click="showClose = false">
        <div class="close" ng-hide="showClose" ng-click="onClickClose($event)" >Close</div>
      </div>

【讨论】:

  • AHHHHH....我这样做了 20 次,但我没有在 ngClick 调用中传递 $event....非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-01-28
  • 2018-09-15
  • 1970-01-01
  • 1970-01-01
  • 2016-06-05
  • 2023-03-24
  • 2018-12-22
相关资源
最近更新 更多