ng-show 无法在 ng-animate 中正常工作
ng-show does not work correctly with ng-animate
当加载动画模块时,ng-show不起作用。ng-show 表达式的默认值为 false,但元素仍显示,并且缺少类 ng-hide。如果我卸载动画模块,那么它可以正常工作。
<script>
var app=angular.module('app', ['ngRoute','ngCookies','infinite-scroll','ui.mask','ngAnimate']);
</script>
我有同样的问题,这可能是时间问题,但有一个解决方法。简而言之,在带有插值的"class"属性中定义的类与尝试添加另一个类的同一元素上的其他指令之间存在一些冲突。 删除class="{{::item.customClass}}"
会使 ng-class 和 ng-show 指令正常工作。
我无法在 plunker 上重现它,可能是因为涉及大量组件。 我们使用$templateCache服务,ngAnimate模块,以及使用ng-repeat与动态类和ng-show一起使用的指令(以及更多,这似乎不会影响问题)。删除提到的任何内容都解决了问题。有一件事我没有尝试,那就是试图将代码与ui-view
层次结构分离,也许 ui-router 是问题的一部分。
调试表明,在ng-class/ng-show的手表执行后,添加了正确的类,它看起来像这样:class="{{::item.customClass}} ng-hide"
,但在摘要周期结束时,它看起来像这样:class="myCustomClass"
。我想这也是您的代码中发生的情况。
我处理这种情况的方式是将item.customClass
移动到ng类,如下所示:ng-class=[{ ... other classes}, item.customClass]
这是一种解决方法,而不是真正的解决方案,因为:
- 这可能是Angular代码中的一个真正问题。
- 我不知道如何在这里使用绑定,这当然很重要。
animate.css。它适用于 Angular,您可以通过 class='ng-show' 触发它。
喜欢这个:
<div class="animated fadeInRight" data-ng-class="loginShow">
如果您在控制器中将$scope.loginShow设置为"ng-show",它将自动触发动画效果。
如果你想在"ng-hide"上触发动画效果,你必须像这样在控制器中编写它:
$scope.loginShow = 'ng-hide-add animated fadeOutRight';
希望这有帮助!
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- JS可以在Chrome中工作,但不能在Firefox中工作
- ajaxToolkit PopupControlExtender不工作.过时的
- HTML标记在脚本标记中工作
- javascript扫雷器floodfill算法不能正常工作