Я использую ngAnimate
для анимации записей в ng-repeat
. При загрузке данных все элементы анимируются, как я определил в моем CSS:
.chat-message.notice.ng-enter {
-webkit-animation: rubberBand 1s;
-moz-animation: rubberBand 1s;
-ms-animation: rubberBand 1s;
animation: rubberBand 1s;
}
Это работает, если к уведомлению добавлен следующий HTML-код:
<ul>
<li class="media chat-message pointer fade-animate"
ng-repeat-start="message in guestbook.messages track by $index"
ng-if="!message.bot">
<!-- more html -->
</li>
<li class="chat-message notice" ng-repeat-end ng-if="message.bot">
<div>
<p class="text-center">
{{ message.message }}
<small>({{ message.date | amTimeAgo }})</small>
<span class="close pull-right" ng-click="guestbook.remove(message)">×</span>
</p>
</div>
</li>
</ul>
Однако, когда добавляется новое сообщение (вверху), каждый элемент снова анимируется. Есть ли способ анимировать элементы только один раз? Что, когда к массиву добавляется новое сообщение, будет анимироваться только этот элемент?
ИЗМЕНИТЬ
После нескольких щелчков мышью по «новому сообщению» я вижу, что не все уведомления анимированы. Может это как-то связано с ng-repeat-start
и ng-repeat-end
?