Введите анимацию, которая не воспроизводится в Angular

Мне интересно, как я могу анимировать элемент при запуске углового приложения.

Действительно, я вижу (может быть, я что-то не так делаю), что модуль анимации не вызывает событие "вход" в первый раз, а после все идет нормально. Как я могу анимировать его, не переписывая весь код, который у меня есть в моем модуле анимации, где-то еще?

Вы можете видеть на моей скрипке, что на первый взгляд li зеленый, когда мне это нужно быть синим, как определено в моей анимации входа.

Я не знаю, происходит ли это только в моей конфигурации, которая выглядит следующим образом:

<li ng-if="$index === value" ng-repeat="proj in projects" class="test-anim">test</li>

, анимация класса test-anim.

Спасибо за ваши ответы


person art.mu    schedule 14.12.2013    source источник


Ответы (1)


Это предусмотрено в версии 1.2.3. Смотрите этот выпуск:

https://github.com/angular/angular.js/issues/5130

Вы можете использовать такой тайм-аут, чтобы попытаться дождаться отображения страницы перед добавлением данных в ваш ng-repeats/ng-if:

$timeout(function(){
        $scope.value = 0;
        $scope.projects = [{}, {}, {}];      
    }, 0);
person Daniel Tabuenca    schedule 15.12.2013
comment
Спасибо @dtabuenc за помощь. На самом деле, я не могу заставить это работать, пока я помещаю директиву ng-if в дочернюю часть ng-repeat. В противном случае это действительно сработает. Я безуспешно пытался использовать $timeout или установить пустое значение. Вот [ссылка], иллюстрирующая (jsfiddle.net/avOff/HQ4vc). Единственная разница между тем, что я публикую в вопросе, и этим заключается в том, что ng if теперь ребенок... - person art.mu; 16.12.2013