suchen

Heim  >  Fragen und Antworten  >  Hauptteil

angular.js - angular登录完成后,如何正确在header显示用户数据

如图所示:右上角红框内是登录成功后,用户名显示的位置

我现在是通过angular事件传递来做的。每次手动刷新页面后,用户的数据就取不到了。这是应该用那种方式来做比较好?求指教!

LoginController:登录视图控制器

function LoginController($rootScope, $scope, $state, $window, AUTH_EVENTS, AuthService, ProfileService) {
    var vm = this;
    vm.login = login;
    
    function login() {

      var userInfo = {
        username: vm.username,
        password: vm.password
      };

      AuthService.login(userInfo).then(function () {
        ProfileService.fetchUserInfo().then(function (res) {
          $scope.$emit(AUTH_EVENTS.loginSuccess, res);
          $state.go('app.program.list');
        })
      })

    }

  }

AppCtrl:系统框架控制器,包含header

function AppCtrl($rootScope, $scope, $state, $translate,
                   $localStorage, $window, $document, $timeout,
                   cfpLoadingBar, AuthService, AUTH_EVENTS) {

    $rootScope.$on(AUTH_EVENTS.loginSuccess, function (e,data) {
      $rootScope.user = data.data;
    });
    
})
某草草某草草2776 Tage vor586

Antworte allen(1)Ich werde antworten

  • 黄舟

    黄舟2017-05-15 17:01:08

    angular.module("myApp",[])
            .run(function (AuthService) {
                AuthService.login();
            })

    Antwort
    0
  • StornierenAntwort