无法调用基本ngAnimate示例的函数

时间:2015-08-26 11:35:16

标签: javascript angularjs

我想尝试使用ngAnimate工作的基本示例,我创建了一个包含来自Angular docs ngAnimate的代码的jsfiddle:

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函数,我在这里缺少什么?

1 个答案:

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