Ich habe eine Bibliothek von Drittanbietern, die asynchron auf meine Seite geladen wird, und ich möchte sie als Dienst verwenden.
Wie kann ich den Ladecode in einen eckigen Service einpacken? Im Allgemeinen, was wäre die beste Praxis?
Im Moment ist mein Ansatz so:
%Vor%und dann auf der Seite außerhalb des Winkelbereichs
%Vor%Eine Möglichkeit besteht darin, Ihren Bibliotheksaufruf in $ q zu verpacken. Dieser eckige Dienst gibt ein Versprechen zurück, das Sie beheben können, wenn die Bibliothek vollständig geladen ist.
Ihre doStuff
Funktion wäre etwas wie:
In Ihrem Controller verwenden Sie die Funktion then()
, um die Ergebnisse zu verarbeiten.
Eine zweite Möglichkeit ist mit einem Rückruf. Hier ist ein Beispiel beider Typen.
Wenn Ihre Bibliothek das DOM manipuliert, ist es besser, es in eine Direktive zu packen.
Tags und Links javascript angularjs asynchronous