J'ai un "@angular/animations": "^4.3.0"
angulaire installé dans mon projet et j'essaie d'exécuter un childAnimation().AnimateChild ne fonctionne pas pour les enfants: quitter la transition
I deux animations, une pour un parent et une pour un élément enfant. Les deux avec: entrer et: laisser des transitions. L'élément parent est affiché en fonction de *ngIf="isOpen"
.
: entrez les travaux sur les deux éléments, mais: laisser non animé sur l'élément enfant
Pour ce faire, je l'ai lu que je dois utiliser query('@*', animateChild())
. Le problème est que cela ne fonctionne toujours pas. Y a-t-il quelque chose qui me manque ici? Ma conjecture est que: congé ne fonctionne pas sur l'enfant comme seul le parent est déclenché avec * ngIf, mais comment puis-je déclencher un: laisser la transition sur l'enfant alors?
:
<div *ngIf="isOpen" [@fadeAnimation] (click)="close()">
<div [@slideHorizontalAnimation] (click)="$event.stopPropagation();">
...
</div>
</div>
animations:
export const fadeAnimation = trigger(
'fadeAnimation',
[
transition(
':enter',
[
style({ opacity: 0 }),
animate('100ms', style({ opacity: 1 }))
]
),
transition(
':leave',
[
style({ opacity: 1 }),
animate('100ms', style({ opacity: 0 })),
query('@*', animateChild())
]
)
]
);
export const slideHorizontalAnimation = trigger(
'slideHorizontalAnimation',
[
transition(
':enter',
[
style({ transform: 'translateX(-100%)', opacity: 0 }),
animate('100ms', style({ transform: 'translateX(0)', opacity: 1 }))
]
),
transition(
':leave',
[
style({ transform: 'translateX(0)', opacity: 1 }),
animate('100ms', style({ transform: 'translateX(-100%)', opacity: 0 }))
]
)
]
);
C'est pourquoi j'ajouté animateChild() comme décrit dans un commentaire dans votre premier lien, mais cela ne fonctionne pas. Je l'ai vraiment fait fonctionner quand j'ai ajouté '' ngIf = "isOpen" 'aux deux éléments, parent et enfant, mais cela ressemble plus à une solution de contournement. –
https://github.com/angular/angular/pull/19006 pourrait le réparer et le faire fonctionner comme prévu, nous avons juste à attendre la fusion et l'espoir;) –