全局禁用ng-animate,然后启用某些元素

时间:2016-05-23 18:22:29

标签: angularjs ng-animate

使用Angular 1.5.3,是否可以全局禁用ng-animate,然后在某些元素上有选择地启用它?

我有一个指令(ng-animate-enabled)用于在容器div及其子容器上启用ng-animate。

如果我通过$animate.enabled(false)全局禁用控制器中的ng-animate,即使我通过上述指令专门启用动画,动画也不再有效。

jsfiddle说明了问题。

谢谢!

1 个答案:

答案 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