AngularJS只是ng-repeat动画中的第一个元素

时间:2014-04-19 23:37:11

标签: javascript angularjs angularjs-ng-repeat ng-animate

出于某种原因使用下面的代码,ngRepeat仅动画第一个项目并立即显示其余项目。一旦scope.categories项更新,就会在模板中触发ng-repeat。

dataSource.getCategories()
    .then(function(categories) {
        $scope.categories = categories;
    }, function(message) {
        dataSource.setActivity(false, message);
    });

但是,如果我将代码更改为下面的代码并在页面中添加<a ng-click="start()">Start</a>,则可行。是的,我尝试了超时,甚至长达5秒,并没有改变这种情况。

dataSource.getCategories()
    .then(function(categories) {
        $scope.start = function() {
            $scope.categories = categories;
        }

    }, function(message) {
        dataSource.setActivity(false, message);
    });

有没有人有解决方案?

2 个答案:

答案 0 :(得分:4)

我用AngularJS 1.2.9尝试了你的CSS并得到了相同的结果。但它适用于1.2.13。 1.2。* - 分支中的ngAnimate模块发生了很多变化,所以如果没有深入研究这个问题,我猜它是一个已修复过的bug。

演示 - 1.2.9无法正常工作http://plnkr.co/edit/WvK2DDB6wTUkjx4Ah2bs?p=preview

演示 - 1.2.13正常工作http://plnkr.co/edit/50UdTAKAsua85hyLc1O6?p=preview

答案 1 :(得分:1)

我遇到了同样的问题(使用Angular 1.2.21)。我的问题是我在!important风格上使用transition: all 1s linear。尝试删除它,看看它是否有效。如果您首先需要!important,请尝试简化您的CSS。

以下是一些说明我遇到的问题的掠夺者: