2016-11-27 3 views
-1

Ich verwende die Host-Eigenschaft des Komponenten-Dekorators, um einen Animations-Trigger zu deklarieren, der einen Übergangszustand für * => void enthält.Angular 2 Animieren des Leerzustands einer gerouteten Komponente

Ich weiß, dass es auslöst, weil ich eine Dauer von 800ms angewendet habe (zum Testen habe ich es auf 5 Sekunden geändert, um sicher zu sein), und wenn ich auf einen routerLink klicke, der es zu einer anderen Komponente bringt, gibt es eine 5 zweite Verzögerung auftritt.

Das Problem ist, dass keine Animation stattfindet. Es sollte auf der linken Seite werden Schiebe- und Verblassen zu Opazität: 0.

Hier ist der Code innerhalb der Komponente Dekorateur ist:

host: { 
    '[@slideInOutright]': 'true', 
}, 
animations: [ 

    trigger('slideInOutright', [ 

    state('*', style({transform: 'translateX(0)'})), 

    transition('void => *', [ 
     style({transform: 'translateX(150px)', opacity:'1'}), 
     animate('300ms 500ms ease-out') 
    ]), 
    transition('* => void', [ 
     animate('800ms', style({transform: 'translateX(-60px)',opacity: '0'})) 
    ]) 
    ]) 

] 

Antwort

0

Sie sollten true statt * Ihr Zustand nennen.

+0

Immer noch kein Glück; gleiches Verhalten. –

+0

Oh, ich denke, ich kenne das Problem ... die details.component.html ist in ein div eingepackt, das einen * ngIf = drauf hat. Ich schätze, es gibt ein Problem, bei dem alles, was enthalten ist, ignoriert wird. Wenn ich etwas außerhalb hinzufügen, wenn, die Animation stattfindet. Pfui. –

Verwandte Themen