2017-03-20 6 views
3

Ich habe ein ausstehendes Problem auf dem Repo here, aber ich dachte, es wäre nützlich, es hier trotzdem zu fragen.Angular 4 - Wie man Animationen innerhalb der Direktive ausführt?

Ich möchte eine Animation innerhalb einer Richtlinie programmgesteuert auslösen. Wenn Renderer.animate verwenden, erhalte ich:

Renderer.animate is no longer supported! 

Wenn Renderer.invokeElementMethod verwenden, erhalte ich:

Cannot read property 'apply' of undefined 

Wie würde ich das tun?

+0

Basierend auf den Kommentaren in den genannten Themen, es sieht aus wie Sie sollen entweder Ihre eigenen Renderer implementieren oder verwenden Sie einfach 'ElementRef.nativeElement'. Letzteres würde ich je nach Zielumgebung tun. BTW: +1 für die Markierung mit JavaScript <3 –

+1

Danke, ich verstehe. Ich finde es nur komisch, dass es unter '@ angular/animations' anscheinend eine komplette Animations-Engine zu geben scheint, aber ich kann sie nicht auf Anhieb nutzen. Ich werde weiter nach einer geeigneten Lösung suchen. – Nicky

Antwort

3

Änderungen kommen zu Angular! Siehe this GitHub issue im offiziellen Angular Repo.

TL; DR

Was ist wirklich gut: Mit der ersten Beta-Version von Winkel 4.1 (die zu diesen Wochen als Follow-up-Release kommt aus 4.0.0) Sie folgenden tun:

class MyCmp { 


constructor(private _builder: AnimationBuilder) { 
    } 
    myMethod() { 
     const animation = this._builder.build([ 
     style(...), 
     animate(...), 
     group([ 
      animate(...) 
      animate(...) 
      animate(...) 
     ]) 
     ]); 
     const player = animation.create(someElement); 
     player.play(); 
    } 
} 
Verwandte Themen