我想尝试使用ngAnimate工作的基本示例,我创建了一个包含来自Angular docs ngAnimate的代码的jsfiddle:
var myApp = angular.module('myApp',['ngAnimate']);
myApp.controller('MyCtrl', function($scope) {
$scope.name = 'Superhero';
$scope.items = ['A','B','C'];
}).animation('.slide', [function() {
return {
// make note that other events (like addClass/removeClass)
// have different function input parameters
enter: function(element, doneFn) {
console.log('enter');
// knows that the animation has concluded
},
move: function(element, doneFn) {
console.log('move');
},
leave: function(element, doneFn) {
console.log('leave');
}
}
}]);
我希望至少可以调用enter函数,我在这里缺少什么?
答案 0 :(得分:1)
ngAnimate
在初始加载时不会触发。这是关于它的Github门票:https://github.com/angular/angular.js/issues/10536
然而,你的动画确实有效!如果将以下内容添加到控制器:
$timeout(function(){ $scope.items.push('D'); }, 1000);
您会看到'enter'
已被记录。 (JSFiddle)
同样,如果在超时时加载了所有整个Array,它将记录每个项目。它只需要在Angular完成的应用程序设置之后。
之前有一些黑客可以使初始加载动画生效,但看起来很not to work anymore。