Ich habe folgendes Setup in meinem HTML-Datei ::Probleme mit AngularJS-Controller
<body>
<nav ng-controller="loginCtrl">
<div>
<li>Apple</li>
<li>Mango</li>
<li>{{user}}</li>
</div>
</nav>
<div ui-view></div>
</body>
ich ein Navigationsmenü haben und die ui-view
, die verschiedene Seiten anzeigt.
Ich habe auch einen Controller, loginCtrl
, mit einer Bereichsvariablen namens $scope.user
. Dieser Controller wird auch im UI-State-Router für die Datei login.html
aufgerufen, so dass das Login-Formular seine Methoden verwenden kann.
Wenn sich ein Benutzer anmeldet, möchte ich seinen Namen im Navigationsmenü unter Verwendung der obigen {{user}}
anzeigen. Das Navigationsmenü, wie Sie sehen können, ist sichtbar (statisch) unabhängig von anderen Teilseiten, die in ui-view
geladen werden.
Im Moment funktioniert es nicht und ich weiß nicht warum.
Mein Verständnis ist, dass das Login-Formular in der login.html und das Navigationsmenü in verschiedenen Dateien sind, so dass sie möglicherweise den gleichen Controller (unter dem gleichen Modul) verwenden und möglicherweise in verschiedenen Bereichen/Umgebungen (bin mir da nicht wirklich sicher).
Deshalb aktualisiere ich den Wert $scope.user
, aber es erscheint nicht im Navigationsmenü.
Kann mir jemand erklären, warum es nicht funktioniert und wie ich meine Funktionalität erreichen kann?
Dank
Sie bitte Ihre Controller-Logik enthalten mit deinem Code. – dYale
Sie sind zwei verschiedene Instanzen desselben Controllers. Jeder hat seinen eigenen Umfang. –