将控制器范围值设置为全局

时间:2017-06-21 10:06:54

标签: angularjs

我有AngularJS项目。 在我的登录控制器中,当用户登录成功时,我将用户值设置为localStorageService.set("user", res),它指向配置文件html并通过配置文件控制器进行控制。在我的$scope.user = localStorageService.get("user"); 目前我只能在配置文件html中访问此user。但我想在全球范围内访问此配置文件。 例如:在我的标题html中。

如何设置此项以访问项目html页面中的每个商品?

登录控制器

mymedApp.controller('LoginController', function ($scope, $rootScope, $location, $filter, $http, $window, $document, Common, localStorageService, SweetAlert, Facebook) {

$scope.user = {
    user_id : "",
    first_name : "",
    last_name : "",

  };

    $scope.login = function () {
        Common.get('mobile/signin', $scope.login, function (res, err) {
          if (res.user_id > 0) {
            localStorageService.set("user", res);

            $rootScope.$emit('profileChanged', function () {
              $window.location.href = '#/' + profile.js;
            });
          } else {
            SweetAlert.error("Login request failed, please check the email and password and try again.", {
              title : "Login Failed!",
              confirmButtonColor : '#e74c3c'
            });
          }
        }, true);
      };

)};

个人资料控制器

myApp.controller('ProfileController', function ($scope, $filter, $rootScope, $http, $window, $document, localStorageService,) {
        var init = function () {
                if (!localStorageService.get("user")) {
                   // $window.location.href = '#/login';
                } else {
                    $scope.user = localStorageService.get("user");

                }
            };

            init();
    });

2 个答案:

答案 0 :(得分:0)

由于您将其存储在localstorage Service中,因此可以全局使用。您可以在所需的控制器中注入localstorage服务,并以相同的方式获取它。

 if (!localStorageService.get("user")) {
                   // $window.location.href = '#/login';
                } else {
                    $scope.user = localStorageService.get("user");

                }

答案 1 :(得分:0)

你可以设置,

var user = localStorageService.get("user");

然后在会话中设置此用户变量,如

Session.setValue(variable name(username),user);

然后你想在哪个页面获得该值

Session.getValue(variable name which written during set session(username));