AngularJS服务未正确设置数据

时间:2015-06-03 23:22:49

标签: angularjs angular-ui-router angular-ui

我有这项服务:



myApp.factory('Auth', function() {
  var user;

  return {
    setUser: function(aUser) {
      user = aUser;
    },
    isLoggedIn: function() {
      return (user) ? user : false;
    }
  }
});




我将它注入我的控制器" loginCtrl"并设置用户:



myApp.controller('loginCtrl', ['$scope', '$http', '$state', 'Auth',
  function($scope, $http, $state, Auth) {
    $scope.login = function() {
      $http.post('/login', $scope.local).success(function(response) {
        Auth.setUser($scope.local);
        console.log(Auth);
        console.log(Auth.user);
        $state.go('news');
      });
    };
  }
]);




Auth.setUser似乎永远不会完成它的工作,因为控制台在返回" Undefined"后立即记录。我究竟做错了什么?谢谢!

1 个答案:

答案 0 :(得分:0)

您需要添加到Auth服务:

getUser: function () {
    return user;
}

否则,您无法访问Auth服务中声明的变量,因为它们受到保护。只能通过返回对象公开的项目。

console.log("User:", Auth.getUser());