3

我刚开始使用 ngAnimate 库 (1.2.13),当我将 ngRepeat 指令与 ngClass 结合使用时,它破坏了我的 DOM。当 ngClass 添加或删除触发未使用 ngAnimate 类定义的现有转换的类时,似乎存在冲突。

我在以下 Plunker 中复制了该行为:http://plnkr.co/edit/iw5st35cqp1GQeCxMhjj 当您单击其中一个元素时,它们会获得焦点。使用 ngClass将类dm-focused添加到元素并触发高度转换。当焦点元素被移除时,它应该从列表中消失,但它会出现故障并停留在焦点状态。

我能想出的唯一解决方案是将每个 ngAnimate 类设置transition: none为所有遭受此故障的现有类。但是,如果我确实想同时使用 ngClass 和 ngAnimate 的转换怎么办?我还必须检查我的所有应用程序并添加不必要的样式,以防止这种不需要的行为。

4

1 回答 1

0

认为仅将类用于某些特定操作而不是动画的最佳解决方案。

在任何情况下,您都可以禁用元素的动画

在js中:

app.directive('disableAnimate', ['$animate', function ($animate) {
    return {
        restrict: 'A',
        link: function (scope, element) {
            $animate.enabled(false, element);
        }
    };
} ]);

在 html 中:

<div disable-animate><!-- your structure --></div>
于 2014-11-08T11:08:51.897 回答