2016-07-18 3 views
1

angularjs를 사용하여 로그인을 시도하고 있습니다. 내 loginFactory는 항상 알 수없는 공급자 오류를 표시합니다. 아래는 내 factory.js 코드입니다.

loginFactory.$inject = ['$resource', '$q']; 
function loginFactory($resource, $q) { 

     return { 
      login: login, 
      logout:logout, 
      isLogged:isLogged, 
      getUserData:getUserData, 

     }; 
     /////////////// 
     /** 
      * Login user in 
      * @param object $data 
      * @return object promise 
      */ 
     function login($data) { 
      return getResource().save($data).$promise.then(function(user) { 
       setUserData(user.user); 
       return user; 
      }) 
     } 
     /** 
      * Store user save data 
      * @param object user data 
      */ 
     function setUserData($data) {    
      localStorage.setItem('token', $data.token); 
      localStorage.setItem('id', $data.id); 
     } 

      /** 
      * Get user data 
      * @return object 
      */ 
     function getUserData() { 
      // perform asynchronous operation 
      var deferred = $q.defer(); 

      if(localStorage.token && localStorage.id) { 

       deferred.resolve({ 
         token:localStorage.token, 
         id:localStorage.id, 
       });  

      // if local storage fails, check with the server if user is still logged in 
      } else { 
       getUserFromServer().$promise.then(function(user){ 
       deferred.resolve(user) 
       },function(error){ 
        deferred.reject(); 
       }) 
      } 
      // return promise 
      return deferred.promise; 
     } 

     /** 
      * Remove User data 
      */ 
     function removeUserData() { 
      delete localStorage.token; 
      delete localStorage.id; 
     } 

     /** 
      * Logout user 
      * @return object promise 
      */ 
     function logout() { 
      return getResource().delete().$promise.then(function(message) { 
       removeUserData();  
      }) 
     } 

     /** 
      * Check if user is logged in 
      * @return boolean 
      */ 
     function isLogged() { 
      return getUserData().then(function(user){ 
       return true; 
      }, function(error){    
       return false; 
      }); 
     } 

     /** 
      * Get user data from server 
      * call api/login GET method, returns JSON {token,id} 
      * @return promise 
      */ 
     function getUserFromServer() { 
      return getResource().get(); 
     } 

     /** 
      * Get resource 
      * @return obj 
      */ 
     function getResource() { 
      return $resource('/api/login'); 
     }; 
    } 

angular 
    .module('inspinia')  
    .factory('loginFactory', loginFactory); 

아무도 내가 잘못하고있는 어떤 힌트를 제공 할 수 있습니까? 고맙습니다.

답변

0

각도 .module ('inspinia'[ 'ngResource'])
.factory ('loginFactory'loginFactory);

는 모듈 UR 답장을

+0

고맙습니다 내부 ngResource 의존성 주입을 추가합니다. 하지만 'ngResource'를 추가 한 후 $ injector : modulerr 오류 – AAT

+0

을 다운로드하고 angular-resource.js를 다운로드하여 리소스에 추가하십시오. –

관련 문제