Ich bin ein Neuling zu angularjs.AngularJS Controller neu laden
Mein Problem ist, dass ich einen Benutzer-Controller für die Handhabung von Login und Logout habe. Ich habe auch einen anderen Controller, um ein Header-Menü für meine Website zu laden.
Wenn sich der Benutzer bei der Site anmeldet, wird meine isAuthenticated-Variable auf true festgelegt. Wenn die Variable auf "True" gesetzt ist, sollte der Header geändert werden, aber ich denke, dass der Controller neu geladen werden muss, um die Header-Ansicht zu ändern.
Hier ist der Code meiner HeaderController:
myapp.controller('HeaderController', ['$scope', '$location', '$window', 'AuthenticationService',
function HeaderController($scope, $location, $window, AuthenticationService) {
$scope.isAuthenticated = AuthenticationService.isAuthenticated;
if (AuthenticationService.isAuthenticated) {
$scope.user.vorname = $window.sessionStorage.user.vorname;
}
}
]);
Hier ist der Code meiner HeaderDirective:
myapp.directive('appHeader', function() {
return {
restrict: 'E',
link: function(scope, element, attrs) {
if (attrs.isauthenticated == 'false') {
scope.headerUrl = 'views/header/index.html';
} else {
scope.headerUrl = 'views/header/isAuthenticated.html';
}
},
template: '<div ng-include="headerUrl"></div>'
}
});
Meine index.html:
<div ng-controller="HeaderController">
<app-header isauthenticated="{{isAuthenticated}}"></app-header>
</div>
Wie kann ich nachladen die Controller, wenn sich der Benutzer bei der Seite anmeldet?
PS: Bitte entschuldigen Sie meine schlechte Aussprache.
Danke, das ist, was ich suche. – BlackSalt
leider, diese Antwort irgendwie für jeden fehlschlägt, der sucht, wie man einen Kontroller wirklich neu lädt :(. Ja, es ist in diesem Fall nicht notwendig, aber es gibt andere Gebrauchfälle (wie das Schreiben der Infrastruktur, die Bits des ui folgend neu initialisieren kann) Empfang eines Ereignisses) –
@GeorgeMauer Ich verstehe nicht, warum ein Controller reolad in Ihrem Anwendungsfall auch nicht benötigt wird.Können Sie mehr Kontext geben (vielleicht ist es besser, eine neue SO Frage zu öffnen, die mit diesem einen ungültigen Ansatz verbindet Deine Bedürfnisse) –