Я создаю приложение AngularJS, и я хотел бы показать информацию о пользователе в заголовке страницы, когда пользователь вошел в систему. Что-то вроде «Добро пожаловать, {{username}}».Показать информацию о пользователе после регистрации AngularJS
Я создал службу SessionHandler, где храню информацию о пользователе.
module Shared{
export class SessionHandler implements ISessionHandler {
loggedUser: string;
SetLoggedUser(user: string) {
this.loggedUser = user;
}
GetLoggedUser(): string {
return this.loggedUser;
}
}
}
angular.module("MainApp").service("SessionHandler", Shared.SessionHandler);
Я попытался создать директиву
angular.module("MainApp").directive("myheader", function() {
return {
restrict: "E",
templateUrl: "/app/shared/partials/header.html",
controller: function ($scope, SessionHandler: Shared.ISessionHandler) {
$scope.LoggedUser = function() {
SessionHandler.GetLoggedUser();
}
}
}
});
моего шаблон заголовок прост ..
<span>{{LoggedUser()}}</span>
моего основной модуль приложение выглядит следующим образом
angular.module("MainApp", ['ui.bootstrap','Login', 'Module2'])
...
.run(($rootScope: ng.IRootScopeService, $location: ng.ILocationService, SessionHandler: Shared.ISessionHandler) => {
$rootScope.$on("$routeChangeStart", (event, next, current) => {
if (!SessionHandler.IsUserLoggedIn()) {
$location.path("/login");
}
if (next.templateUrl == "/app/module/login/partials/login.html") {
SessionHandler.ClearSession();
return;
}
});
});
и мои login Controller, который является i n Модуль входа вызывает метод на сервере и после успешного входа в систему регистрирует пользователя, вызывая метод SetLoggedUser() в SessionHandler.
моих указательного
<html data-ng-app="MainApp">
<head>
</head>
<body>
<div class="container-fluid">
<myheader></myheader>
<div data-ng-view=""></div>
</div>
</body>
</html>
Когда я начинаю мое приложение регистрируется пользователь пуст, так что я только смотреть Добро пожаловать (я исправлю это позже), но после того, как я Войти Я перенаправлен на другой частичный вид, но ничего не меняется в заголовок. Мне явно чего-то не хватает, но я просто не могу понять, что.
спасибо.