使用Angular 1.5.3,是否可以全局禁用ng-animate,然后在某些元素上有选择地启用它?
我有一个指令(ng-animate-enabled
)用于在容器div
及其子容器上启用ng-animate。
如果我通过$animate.enabled(false)
全局禁用控制器中的ng-animate,即使我通过上述指令专门启用动画,动画也不再有效。
此jsfiddle说明了问题。
谢谢!
答案 0 :(得分:7)
最简单的方法是使用$animateProvider.classNameFilter()
。这允许您基于HTML类(或更具体地,针对类检查的正则表达式)为某些元素选择性地启用ngAnimate。这消除了为启用ngAnimate提供特定指令的需要,并且可以为您的应用程序提供显着的性能提升。在你的情况下,我做:
// Note that that the function takes a regular expression, not a string!
// Don't put quotes around it, use forward slashes!
$animateProvider.classNameFilter(/ng-animate-enabled/);
这将为具有ng-animate-enabled
类的任何元素启用ngAnimate。
有关详细信息,建议您阅读有关该主题的Ben Nadel's blog post。