我试图获得一个使用ngAnimate的基本示例,我创建了一个jsfiddle,其中包含来自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函数,我在这里错过了什么?

最佳答案

ngAnimate不会在初始加载时触发。这是有关Github的票证:https://github.com/angular/angular.js/issues/10536

但是,您的动画可以正常工作!如果将以下内容添加到控制器中:

$timeout(function(){ $scope.items.push('D'); }, 1000);


您会看到已记录'enter'。 (JSFiddle

同样,如果整个数组都在超时中加载,它将记录每个项目。只需在Angular完成应用设置后即可。

以前有一些技巧可以使初始加载动画正常工作,但这些技巧似乎not to work anymore

关于javascript - 无法调用基本ngAnimate示例的函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32225555/

10-11 05:53