我是angularjs的新手,我试图只为我想要动画的元素制作动画。
我已将ngAnimate模块注入我的应用程序中,如下所示:
var mrApp = angular.module("mrApp", ["ngRoute", "ngAnimate", "templates"]);
这似乎会影响页面中具有ng-show或ng-hide,ng-repeat等的每个元素。根据文件,它应该是什么。
我的问题是:我做错了吗?我的应用程序是否应该有多个模块,以便能够指定应该设置动画的组件?如果没有,我如何仅定位动画的特定元素?
编辑:这样的事情?尝试使用classname animate-item定位元素。似乎不起作用?var mrApp = angular.module("mrApp", ["ngRoute","ngAnimate","templates"]);
mrApp.config(['$animateProvider', function($animateProvider) {
$animateProvider.classNameFilter(/animate-item\b/g);
}]);
答案 0 :(得分:0)
来自此问题:https://github.com/angular/angular.js/issues/5172
您可以使用$animateProvider.classNameFilter
这种方式角度将仅为特定类设置动画。您应该在应用程序的config
角度或根控制器中注入提供程序。
编辑:以下是提供商的文档:https://docs.angularjs.org/api/ng/provider/ $ animateProvider
基本上你应该提供RegExp
编辑:我在这里查看了$animateProvider
的代码:https://github.com/angular/angular.js/blob/master/src/ng/animate.js#L5请看下面的代码:
this.classNameFilter = function(expression) {
if(arguments.length === 1) {
this.$$classNameFilter = (expression instanceof RegExp) ? expression : null;
}
return this.$$classNameFilter;
};
这意味着您应该按如下方式传递表达式:
$animateProvider.classNameFilter(new RegExp('/animate-item\b/g'));