Verfolgen, um zu sehen, wenn ein änderungen anzeigen, die in angularjs
Weiß jemand, wie man eckige Feuer ein Ereignis, wenn die Sicht geändert hat? Oder rechts, wenn eine Ansicht angefordert und heruntergeladen? Ich bin versucht hinzuzufügen, laden Animationen beim ein-Seiten ändern.
InformationsquelleAutor matsko | 2012-08-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werfen Sie einen Blick auf dieser thread es sieht aus wie die
$httpProvider.responseInterceptors
sind ein guter Ort, um fügen Sie diese Art der Sache.Diese Geige zeigt ein gutes Beispiel, wo Sie code hinzufügen, um start/stop ein spinner für ajax-Anfragen. Diese Geige ist ähnlich, aber tatsächlich zeigt und verbirgt ein 'Loading...' div.
Wenn Sie nur wollen, um zu zeigen, ein spinner, wenn sich Ansichten ändern Sie können beschränken Sie Ihre start - /Stopp-code, wenn
content-type
gleichtext/html
ähnlich zu dem, was dieser Beitrag zeigt mitapplication/json
.Hinweis: in meinen tests sieht es so aus das
headersGetter()['Content-Type']
imspinnerFunction
weggelassen wird beim abrufen meiner .html-Dateien in der Erwägung, dass es aufgefüllt wird, wenn die service-Aufrufe.Dies funktioniert nur, wenn Sie einem einzelnen ajax-request.
Ist das aktuell für 1.2?
InformationsquelleAutor Gloopy
Ich denke, dass ein viel einfacher, flexibler Ansatz wäre, die Nutzung AngularJS
$http.pendingRequests.length
nennen. Es gibt die ausstehende ajax-call zählen. Also, wenn es erreicht0
, du bist die Seite fertig ist laden.Konnten Sie erstellen eine Richtlinie, die fügt einen laden div (scrim), auf ein beliebiges element, und wartet dann für alle ajax-Aufrufe zu beheben, und dann entfernt Ihr spinner.
Hier ist das Fleisch der code, um Ihren AngularJS Richtlinie:
Bitte beachten Sie, $.aktiv ist nicht dokumentiert.
Jeder Zeit 🙂 ich schlug meinen Kopf für ein paar Stunden auf dieser und dachte, ich würde teilen.
BTW kann man auch verwenden
$scope.$watch
um den gleichen Effekt erzielen, ohne den Einsatz vonsetTimeout
. Dies wäre eine bessere Wahl, denn dies geht zusammen mit dem $Umfang verdaut. Sie können auch dieses plugin verwenden, aber Sie müssten manuell aufrufen$scope.onReady()
wenn Sie fertig sind. github.com/yearofmoo/AngularJS-Scope.onReadySchön 🙂 ich werde in diese Aussehen... danke matsko!
Danke nochmal für die $scope.$beobachten Vorschlag. Code aktualisiert für die Verwendung in einer Richtlinie (das ist, warum Bereich nicht $scope).
InformationsquelleAutor Stone