358 Stimmen

Globale Variablen in AngularJS

Ich habe ein Problem, wo ich eine Variable auf dem Umfang in einem Controller initialisiere. Dann wird sie in einem anderen Controller geändert, wenn sich ein Benutzer anmeldet. Diese Variable wird verwendet, um Dinge wie die Navigationsleiste zu steuern und schränkt den Zugriff auf Teile der Website je nach Art des Benutzers, so seine wichtig, dass es seinen Wert hält. Das Problem dabei ist, dass der Controller, der sie initialisiert, von Angular erneut aufgerufen wird und die Variable dann wieder auf ihren ursprünglichen Wert zurücksetzt.

Ich nehme an, dies ist nicht der richtige Weg der Deklaration und Initialisierung von globalen Variablen, gut seine nicht wirklich global, so meine Frage ist, was ist der richtige Weg und gibt es irgendwelche guten Beispiele um, die mit der aktuellen Version von Angular arbeiten?

-1voto

Andy Corman Punkte 621

Es ist eigentlich ziemlich einfach (wenn Sie Angular 2+ verwenden).

Einfach hinzufügen

declare var myGlobalVarName;

Irgendwo am Anfang Ihrer Komponentendatei (z. B. nach den "import"-Anweisungen), und Sie werden in der Lage sein, auf "myGlobalVarName" überall innerhalb Ihrer Komponente zuzugreifen.

-2voto

pkdkk Punkte 3637

Sie können auch wie folgt vorgehen.

function MyCtrl1($scope) {
    $rootScope.$root.name = 'anonymous'; 
}

function MyCtrl2($scope) {
    var name = $rootScope.$root.name;
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X