Ich möchte eine "Globale Funktion" aufgerufen haben, wenn ich meine AngularJS-Anwendung zum ersten Mal starte, oder jedes Mal, wenn ich die Seite aktualisiere.
Diese Funktion wird meinen Server mit $http.get()
aufrufen, um globale Informationen zu erhalten, die für die Verwendung meiner Anwendung erforderlich sind. Ich muss in dieser Funktion auf $rootScope
zugreifen. Danach, und nur nachdem diese Anfrage beendet ist, verwende ich app.config
und $routeProvider.when()
, um den guten Controller zu laden.
app.config(['$routeProvider', function($routeProvider) {
$routeProvider
.when('/',
{
/**/
});
}]);
Ich möchte nicht die Anwendung etwas tun, bevor diese Aktion abgeschlossen ist. Ich denke also, ich muss eine "Entschlossenheit" anwenden, aber ich weiß nicht wirklich, wie ich sie benutzen soll.
Irgendeine Idee?
Danke!
Sie können * eine HTTP-Anforderung nicht ausführen, bevor Sie Ihre 'config' Blöcke ausführen. Die 'run'-Blöcke laufen sofort * nach * den' config'-Blöcken, was der früheste Punkt ist, an dem Sie dies tun können. Außerdem sollten Sie die Daten nicht in $ rootScope, sondern in einem Dienst speichern. Warum brauchen Sie die Informationen, bevor Sie das Routing einrichten? –
Ich versuche eine internationale Website zu erstellen, mehrere Sprachen. 1. Holen Sie sich Übersetzungen vom Server (Globale Funktion!) Und legen Sie diese Daten im rootScope ab (alle Übersetzungen, um zu vermeiden, dass der Benutzer jedes Mal, wenn er eine Seite wechselt, Übersetzungen lädt) Wenn Sie eine andere Idee haben, um die Liste der in einer Vorlage verwendeten Schlüsselwörter zu erhalten und dann die Übersetzung laden, nachdem die Vorlage geladen ist, kann mir das helfen.) 2. Einrichten des Routings 3. Führen Sie den Controller aus, Anzeige. – alexmngn
Die Übersetzungen sollten sicher in einem Dienst sein. Es gibt Dienste dort draußen, wenn Sie etwas aus der Box wollen, wie [dieses] (https://github.com/PascalPrecht/ng-translate) - es sollte Inspiration liefern, wenn nichts anderes. Sie haben jedoch immer noch nicht geantwortet, warum Sie die Übersetzungen benötigen, bevor Sie das Routing einrichten. –