我有一个系统,可以从服务器中动态检索存储的消息,其视图为:
<div id= "messages" data-ng-controller="MessageController">
<div class="message" data-ng-repeat="message in messages | orderBy:'timestamp':true" data-ng-animate="'animate-message'" >
<div class="user">
{{ message.user.username }}
</div>
<div class="title">
{{ message.title }}
</div>
<div class="content" data-ng-bind-html-unsafe="message.content">
{{ message.content }}
</div>
</div>
</div>
然后我在我的CSS文件中有:
.animate-message-enter {
transition: 1s linear all;
-moz-transition: 1s linear all;
-webkit-transition: 1s linear all;
-o-transition: 1s linear all;
-ms-transition: 1s linear all;
opacity:0;
position:relative;
left:-100%;
}
.animate-message-enter.animate-message-enter-active {
opacity:1;
left:0%;
}
(这只是一个极端的例子转换,所以我可以看到转换工作)
然而,当一个新对象通过$scope.messages.push(response);
输入数组时,新消息只是弹出到页面上,没有动画发生,有人知道我搞砸了什么吗?
感谢:)
尝试将代码复制粘贴到plnkr中,效果良好。你有更多的代码吗?
http://plnkr.co/edit/gi6h3adNMfoXkUdiN4lY
我只添加了一个简单的addMessage函数来测试转换。
<button ng-click="addMessage()">Add Message</button>