我有以下代码,它是指令的模板:
<div ng-click="showDetails=true" ng-init="showDetails=false">
<div ng-show="showDetails">
<div ng-click="showDetails=false">X</div>
</div>
</div>
当我点击外部div时,内部div显示,但是当我点击&#39; X&#39;时,它不会消失。当我重写代码时,使用&#39; ng-mouseover&#39;而不是&#39; ng-click&#39;,它工作正常(即首次点击使div显示,将鼠标悬停在&#39; X&#39;,使其消失):
<div ng-click="showDetails=true" ng-init="showDetails=false">
<div ng-show="showDetails">
<div ng-mouseover="showDetails=false">X</div>
</div>
</div>
任何人都知道“点击”的问题可能是什么?不工作? 谢谢
答案 0 :(得分:3)
您的点击事件正在传播,因此在将showDetails设置为false后,它会再次在最外层的div中将其设置为true!试试这个:
<div ng-click="showDetails=true" ng-init="showDetails=false">
<div ng-show="showDetails">
<div ng-click="showDetails=false;$event.stopPropagation()">X</div>
</div>
</div>