每当$ scope变量更新时,我都会尝试使用某些内容为div设置动画。我想向用户提供已发生更新的反馈。
在我的控制器中,我通过这样的websocket更新$ scope:
socket.syncUpdates('item', $scope.items, function(event, item, array) {
$scope.items = array;
});
我无法理解如何做到这一点。我正在使用ng-animate和animation.css
答案 0 :(得分:3)
socket.syncUpdates('item', $scope.items, function(event, item, array) {
$scope.items = array;
$scope.$apply();
});
在syncUpdates中,使用$digest
触发$apply()
周期。
现在你可以在两个地方做动画了。要么在syncUpdates
内的$scope.$apply()
内,请在另一个$watch
中的$scope.$watch("items", function(newValue, oldValue) {
// your animation code here
}, true);
以下。
myApp.animation(".fade", function () {
return {
addClass: function (element, className) {
TweenMax.to(element, 1, {opacity: 0});
},
removeClass: function (element, className) {
TweenMax.to(element, 1, {opacity: 1});
}
}
})
为div设置动画,以下是一个示例:
$animate
在您的控制器中:
在控制器功能中注入 $animate.addClass(document.querySelector("selector"), "fade");
。然后使用
{{1}}