3

ngAnimate ライブラリ (1.2.13) の使用を開始したばかりで、ngRepeat ディレクティブを ngClass と組み合わせて使用​​すると、DOM が壊れます。ngClass が、ngAnimate クラスで定義されていない既存のトランジションをトリガーするクラスを追加または削除すると、競合が発生するようです。

次の Plunker で動作を再現しました: http://plnkr.co/edit/iw5st35cqp1GQeCxMhjj 要素の 1 つをクリックすると、それらがフォーカスされます。クラスdm-focusedは ngClass で要素に追加され、高さの遷移をトリガーします。フォーカスされた要素が削除されると、リストから消えるはずですが、代わりに不具合が発生し、フォーカスされた状態でスタックします。

私が思いつくことができる唯一の解決策は、すべての 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 に答える