AngularJS-event für wenn das Modell, die verbindlich oder ng-repeat abgeschlossen ist?
Haben wir eine große Modell, und es dauert ein paar Sekunden für ng-repeat binden alle Elemente in das Modell, um die form. Wir möchten zeigen einen spinner, während es diese passiert. Gibt es irgendein Ereignis, das ausgelöst wird, wenn die Bindung abgeschlossen ist, damit wir wissen, Wann wir verstecken die spinner?
- stackoverflow.com/questions/13471129/... ist es das, was du suchst? Ich hatte keine fahne als doppelte, weil ich nicht genug wissen über Winkel-Anruf zu tätigen. Hoffe, das hilft Ihnen aber.
- Ich bin kein angularjs Experte, aber die Bindung sollte ein synchroner Vorgang. Zeigen Sie den spinner, bevor der Anruf, verstecken Sie es nach: keine Rückrufe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Plunkr: http://plnkr.co/edit/GzzTW4?p=preview
Verwenden
ng-show
auf den spinner, Wenn Sie mit 1.2 verwendenng-if
In Ihre Richtlinie verwenden, $last zu bestimmen, wenn das Rendern fertig ist und dann die variable ändern, dass Sie die ng-show/ngif definiert.
Können Sie Uhr für
$last
Element von Compiler - /link-Funktion, und ein benutzerdefiniertes Ereignis ausgelöst, um den UmfangIn dieser Art von Situationen, die ich verwenden $timeout service gemischt mit der $viewContentLoaded Ereignisses, das ausgelöst wird durch angular ui router (wenn du mit ui-router) :
etwa $timeout :
etwa $viewContentLoaded
Meinen persönlichen Anwendungsfall ist für eine paymentForm dynamisch zu generieren, deren verborgene Eingänge (mit HTML-Daten berechnet serverside, dass ich das einfügen über ng-bind-html) und legt den payment Gateway :
FYI im obigen code-Beispiel .submit() ist eine Funktion aus einer benutzerdefinierten Richtlinie verwendet, mit der form, um in der Lage sein, um autosubmit form.
Julien
Dafür das ich normalerweise erstellen Sie ein spinner div im view mit ng-show="Absenden". Dann, wenn die Daten geladen sind, setzen Sie die $scope.die Vorlage zu 'false' show mit dem spinner versteckt ist.
Ich hoffe, das hilft