Ich brauche wirklich einige Daten vor dem Bootstrapping angular geladen werden. Aus diesem Grund habe ich einen run
Block erstellt/Innerhalb dieses run
Blocks rufe ich eine Methode auf einem Dienst auf, die einige Daten vom Server lädt. Da es sich um einen asynchronen Aufruf handelt, wird JavaScript mit der Ausführung fortgesetzt, was zu einigen nicht definierten Objekten in meiner App führt.Warten auf ein Versprechen in einem Run-Block in Angular?
Ich arbeite mit Routen, aber es ist keine Option, mit der resolve
Eigenschaft zu arbeiten.
Könnte jemand eine Lösung zur Verfügung stellen, um zu warten, bis ein Versprechen im run
Block bereit ist?
EDIT:
Dank der gegebenen Antworten, ich habe es manuell gelöst durch Winkel Bootstrapping:
$(document).ready(function() {
$.ajax('/Data/GetDropdownData', {type:'POST'}).done(function (response) {
app.run(['ListService', function (ListService) {
ListService.setData(response);
}])
angular.bootstrap(document, ["sma"]);
})
})
promise.then (function (data) { $ rootScope.Daten = Daten; }); aber ich denke, es ist zu einfach ^^ und Sie sind nicht sicher, es in Ihrem Controller bereit zu haben – Whisher
@Whisher Danke für die Antwort, aber das ist in der Tat keine Option. Ich brauche die Daten wirklich, bevor ich die App starte. – Martijn
Vielleicht wäre das manuelle Bootstrapping also eine Option http://docs.angularjs.org/guide/bootstrap angle.element (Dokument) .ready (function() { angular.bootstrap (Dokument); }); –