2013-07-16 2 views
0

Я создаю приложение 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> 

Когда я начинаю мое приложение регистрируется пользователь пуст, так что я только смотреть Добро пожаловать (я исправлю это позже), но после того, как я Войти Я перенаправлен на другой частичный вид, но ничего не меняется в заголовок. Мне явно чего-то не хватает, но я просто не могу понять, что.

спасибо.

ответ

0

В директиве заголовка вам не хватает зависимости, или вы можете ссылаться на свою службу SessionHandler.

Можете ли вы попытаться добавить это и проверить, что произойдет дальше ..

Смежные вопросы