【问题标题】:AngularJS animate div on scope updateAngularJS 在范围更新时为 div 设置动画
【发布时间】:2015-04-11 10:17:24
【问题描述】:

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

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

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

我不知道该怎么做。我正在使用 ng-animate 和 animation.css

【问题讨论】:

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


    【解决方案1】:
    socket.syncUpdates('item', $scope.items, function(event, item, array) {
        $scope.items = array;
        $scope.$apply();
    });
    

    在您的同步更新中,使用$apply() 触发$digest 循环。

    现在您可以在两个地方制作动画。要么在 syncUpdates 本身下面的 $scope.$apply() 内执行此操作,要么在单独的 $watch 中执行此操作。

    $scope.$watch("items", function(newValue, oldValue) {
         // your animation code here
    }, true);
    

    要为 div 设置动画,这里有一个示例:

    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});
        }
      }
    })
    

    在您的控制器中:

    在你的控制器函数中注入$animate。然后使用

        $animate.addClass(document.querySelector("selector"), "fade");
    

    【讨论】:

    猜你喜欢
    • 2023-03-22
    • 2015-07-23
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-03
    • 2015-09-27
    相关资源
    最近更新 更多