0

嗨,我正在尝试注入 ngtorage 以在本地处理会话,我尝试了不同的方法来做到这一点,但没有结果:

这是我的 app.js

     var myApp = angular.module('myApp', ['ngStorage']);

loginController.js 在一个单独的文件中:

    myApp.controller('logincontroller', ['$scope', '$http','log', function($scope, $http ,log,$sessionStorage)
 { 

$scope.auth = function(){ 

  log.logIn($scope.pseudo,$scope.pwd).
then(function(data){
 if (data.data.log == true){
    $scope.logged = true;
    $scope.success = "Hey ! t'es connect";
    $sessionStorage.user = data.data.pseudo;
 }else 
 {
    $scope.erreur = "connexion echouée";
    $scope.error = true;
 }

 }); 
 }
 }]);

和 authSerivce.js 我注入控制器的服务

     angular.module('myApp').factory('log', ['$http', function($http){
return{
    /*Check whether the user is logged in
    * @returns boolean
    */
   isLoggedIn: function isLoggedIn(){
     return session.getUser() !== null;
    },


/*Log in
* @param credentials
* @returns {*|Promise}
*/
logIn: function(username, pwd){
    return $http
     .post('/login', {'username':
    username, 'pwd': pwd})
     .success(function(data){
      if (data.log == true){
          console.log(data);
          //$localstorage.user= data.pseudo;
          return data;
      }

     }).error(function(data){
        return data;
     });
     },


/* Log out : on peut se poser la question d'une requête HTTP ! pour faire le
ménage côté serveur ?!
* @returns {*|Promise}
*/

 logOut: function(){
    return $http
    .get('/logout')
    .then(function(response){
    // Destroy session in the browser
    session.destroy();
    return(response.data);
    });
    }
}
  }]);

返回错误的行是

  $sessionStorage.user = data.data.pseudo;

错误是无法设置未定义的属性“用户”

帮助非常感谢的人

4

1 回答 1

0

你缺少$sessionStorage参数的顺序,改如下

myApp.controller('logincontroller', ['$scope', '$http','log','$sessionStorage',
  function($scope, $http ,log,$sessionStorage)
于 2018-11-11T15:29:55.677 回答