2015-10-04 66 views
1

我正在使用AngularJS處理Parse應用,並在發佈時修改控制器以指向登錄用戶。在我的數據庫表中,我設置了一個「author」列來指向用戶。我做了一個單獨的service.js文件,我用Squeeg調用。當我點擊創建時,它不會用user.id輸入數據。沒有它,它工作得很好。我該如何解決這個問題,以確保用戶objectId是數據添加到數據庫的一部分?解析/ AngularJS - 使用用戶標識輸入數據

$scope.create=function(){ 
    var user = Parse.User.current(); 
    console.log(user.id); 

    Squeeg.create({ author:user.id, eventname:$scope.events.title, eventDescription:$scope.events.description}).success(function(data){ 
     alert("done"); 
    }); 
} 
+0

不應該是'author:user'嗎? – mic4ael

+0

試過了,它不起作用。 –

回答

0

因爲我需要50聲譽發表評論,這需要在這裏問,你有沒有訪問authfactory/authserverice從那裏獲取當前用戶?假設你有登錄?

然後在authFactory你可以有這樣的事情。

app.factory('authFactory', ['$http', '$window', function ($http, $window) { 
    var authFactory = {}; 

    authFactory.logIn = function (user) { 
     return $http.post('/login', user).success(function (data) { 
      authFactory.saveToken(data.token); 
     }); 
    }; 

    authFactory.saveToken = function (token) { 
     $window.localStorage['appToken'] = token; 
    }; 

    authFactory.getToken = function() { 
     return $window.localStorage['appToken']; 
    }; 

    authFactory.logOut = function() { 
     $window.localStorage.removeItem('appToken'); 
    }; 


    authFactory.currentUser = function() { 
     if(authFactory.isLoggedIn()){ 
      var token = authFactory.getToken(); 
      var payload = JSON.parse($window.atob(token.split('.')[1])); 

      return payload.username; // or return payload.id ...../return payload 
     } 
    }; 

    authFactory.isLoggedIn = function() { 
     var token = authFactory.getToken(); 

     if(token){ 
      var payload = JSON.parse($window.atob(token.split('.')[1])); 

      return payload.exp > Date.now()/1000; 
     } else { 
      return false; 
     } 
    }; 

    return authFactory; 
}]); 

然後,您只需將其與控制器綁定即可訪問它。

app.controller('AnyCtrl', ['$scope', 'authFactory', 
    function ($scope, authFactory) { 

     $scope.currentUser = authFactory.currentUser; 
    } 
]);