AngularJS动画div更新范围

时间:2015-04-11 10:17:24

标签: javascript html angularjs ng-animate animate.css

每当$ scope变量更新时,我都会尝试使用某些内容为div设置动画。我想向用户提供已发生更新的反馈。

在我的控制器中,我通过这样的websocket更新$ scope:

socket.syncUpdates('item', $scope.items, function(event, item, array) {
    $scope.items = array;
});

我无法理解如何做到这一点。我正在使用ng-animate和animation.css

1 个答案:

答案 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}}