Comment puis-je animer *ngFor Angulaire?
J'ai besoin d'animer un ngFor
liste car elle est peuplée et montré. Chaque élément doit avoir une transition, disons quelque chose comme ceci.
Comment puis-je le faire?
OriginalL'auteur Nicu | 2016-05-13
Vous devez vous connecter pour publier un commentaire.
Il a quelques problèmes, car
ngFor
fait un peu redondant ajout/supprime ce qui cause des éléments animés qui ne fallait pas:Plunker exemple (RC.x) de https://github.com/angular/angular/issues/7239 montre le problème.
Mise à jour
Cela a été corrigé il y a longtemps
de travail Plunker exemple (2.4.x)
J'ai créé un nouveau Plunker plnkr.co/modifier/TMZKPbuzorVt9UsGJ2Nr?p=preview
Vous pouvez voir clairement le problème ici: plnkr.co/modifier/Xz48XN?p=preview lorsque vous cliquez sur "swap" Tous les éléments qui est l'indice a changé, c'est de nouveau ajouté au dom, peu importe le " trackBy clause de
il semble toujours y avoir un bug dans le IterableDiffer lorsque plus d'un élément de changements à la fois. Supprimer d'abord, plus tard, ajouter ne cause pas tous en entre les pour obtenir enlevé et rajouté plnkr.co/modifier/ky0sU4EV5NfXLTCkxC2d?p=preview (ajouté plus tard est encore animé même si, à juste titre, dans cette configuration)
Oui, c'est ce que j'essaie de montrer. Il semble fonctionner correctement si vous utilisez
@angular/animations
au lieu de cela, de sorte que c'est probablement la voie à suivre. Les animations de l'api web est beaucoup plus facile que les css pour ce genre d'animation complexes DOM interaction, de toute façon. (même lors de son utilisation directement)OriginalL'auteur Günter Zöchbauer
Il est maintenant le guide Angulaire du système d'animation. Cette aide si nous voulons faire les choses de fantaisie, comme seulement faire de l'animation pour les éléments qui ont été ajoutés après que le composant a initialisé, pas ceux qui sont déjà présents. J'ai modifié la réponse précédente pour faire l'angle de 2 voies.
Plunker: http://plnkr.co/edit/NAs05FiAVTlUjDOZfEsF?p=preview
stateChangeExpression
- autres quevoid => *
(:entry
) /* => void
(:leave
) pour*ngFor
? Par exemple définirtransition('in => out',...
ettransition('out => in',...
et dans l'utilisation du modèle[@growShrinkStaticStart]="transition"
avec la liaison àtransition
variable dans la classe de composant?. Je demande parce que*ngFor
fait DOM l'ajout et la suppression et j'ai pas réussi à obtenir qu'avec des transitions personnalisées.Salut, je suis en utilisant :quitter et si je vais revenir et de les actualiser et de les assigner à un appel d'api le résultat toujours déclenche l'animation. Est-il possible de n'afficher que l'animation lors de la suppression d'un élément?
OriginalL'auteur Stephen