Ich habe eine ziemlich komplexe ng-repeat
. Die Anzahl der angezeigten Objekte kann über zwei Schaltflächen gesteuert werden. Die erste Schaltfläche entfernt ein einzelnes Element aus der ng-Wiederholung mit einem Filter. Die zweite Taste entfernt eine Reihe von Elementen und zeigt eine Reihe anderer Elemente an (auch mit einem Filter).AngularJS deaktivieren vorübergehend Animationen
Im Moment habe ich eine Animation auf der ng-Wiederholung wie folgt aus:
<style>
.animation {
-webkit-transition: 1s;
}
.animation.ng-enter {
opacity: 0;
}
.animation.ng-enter.ng-enter-active {
opacity: 1;
}
/* Similar for ng-leave */
</style>
<div class="animation" data-ng-repeat="item in items"> ... </div>
Wenn der Benutzer klickt auf die erste Taste I die Elemente wollen die Animation verwenden. Wenn der Benutzer auf die zweite Schaltfläche klickt, möchte ich alle Animationen deaktivieren.
Ich benutze AngularJS 1.2.16.
Ich denke, wenn die Funktion mehr Sachen im Controller macht, sollte es zuerst den 'Ausdruck' auf false setzen, und dann den Rest des Codes in ein' $ timeout' (oder so ähnlich) einfügen die Ansicht zum Rendern und Entfernen der 'Animation' Klasse –
@AlonEitan Danke, die Timeout war in der Tat notwendig! – Aerus
@AlonEitan Danke für das vorgeschlagene .. –