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; }); })
问题解答
回答1:angular.module('myApp',[]).run(function (AuthService) { AuthService.login();})