快速离开并输入导致角度ng-if动画中的多个元素

fen*_*ian 17 angularjs ng-animate angular-ng-if

这个文档中有一个ng-if动画示例:https://docs.angularjs.org/api/ng/directive/ng 如果你快速反复点击复选框,你会发现会显示多个元素,I不知道如何避免它.

Ign*_*rde 12

发生这种情况是因为ngIf行为与ngShow例如不同.ngShow只需display: none向必须隐藏的元素添加样式,而ngIf执行以下操作:

ngIf指令基于{expression}删除或重新创建DOM树的一部分.如果分配给ngIf的表达式求值为false值,则从DOM中删除该元素,否则将该元素的克隆重新插入到DOM中.

因此,如果动画需要很长时间,那么DOM中将有多个元素.

在Olivvv的例子,如果你只需要改变的延迟.animate-if.ng-enter, .animate-if.ng-leave0.001s将你本身,你不能让一个以上的元素.

在这里,您可以看到它是官方AngularJS文档的分叉版本.http://plnkr.co/edit/ok7nwOIRpR1TYYRkBRXj?p=preview

我只从修改其延迟0.5s0.001s