2017-06-29 7 views
0

Ich implementiere einen Hack, um den Inhalt eines Elements mit einer Angular 1.4-Direktive zu scrollen. Der Code zum Ändern der Bildlaufposition des Elements muss jedoch nach x Sekunden des Klickens auf dasselbe Element ausgeführt werden.

Diese Anweisung ändert nicht unbedingt die Bildlaufposition eines HTML-Elements.

Sollte ich den nativen Browser setTimeout oder $timeout Funktion verwenden. Ich denke, dass die Verwendung von $timeout unnötig ist, da dies den Digest-Zyklus auslösen wird (wie erwähnt, ist dies unnötig).

Also meine Frage läuft wirklich auf: Ist das eine gute Idee und gibt es ähnliche oder andere Szenarien, wo die Verwendung der nativen setTimeout über $timeout Funktion gewährleistet ist.

+0

ist dies AngularJS oder Winkel 2+ bezeichnet? – crash

+0

Angular 1.4 (oben erwähnt, wird den Titel aktualisieren) – Don

+0

Nur zur Info: Das eckige Team änderte den Namen von angularjs in eckig mit Version 2. Um Verwirrung zu vermeiden, wenn Sie über Unterversion 2 sprechen, sollten Sie angularjs verwenden. – ste2425

Antwort

2

AngularJs ist bereits dafür verantwortlich. $timeout und $interval akzeptieren beide einen optionalen Parameter, der es Ihnen ermöglicht, die Überprüfung zu überspringen: invokeApply, die standardmäßig auf true gesetzt ist.

wird die $digest überspringen. Sie sollten immer verwenden $timeout über setTimeout. $timeout ist ein Wrapper um setTimeout, der in der Lage ist, Ausnahmen durch die $exceptionHandler zu behandeln.

https://docs.angularjs.org/api/ng/service/$timeout/

+0

Aah, ja das ist richtig, Ausnahmebehandlung, ich erinnere mich daran. Vielen Dank – Don

Verwandte Themen