1
我仍然在學習角度和JavaScript,我發現棧 溢出真的很有幫助。其實這是我第一次找不到解決我的問題的其他問題&這裏的答案。我嘗試了很多解決方案,但沒有任何解決方案適合我。
簡而言之:我想將$ http get(用戶數據)的響應保存在變量中,所以我可以在此控制器的其他函數中使用它。
我廠以$ HTTP GET功能:
app.factory('getUserFactory', ['$http', function($http){
return {
getUserData : function(email, password) {
return $http.get('https://xxxxxxx.xxx.xx/api/v1/user/', {
headers: {
"Authorization": 'Basic '+ window.btoa(email +':'+password)
}
});
}
};
}]);
我與功能的控制器:
app.controller('UserController', ['$scope','$http', 'getUserFactory', function($scope, $http, getUserFactory) {
var user= {}; //Used to bind input fields from html file
$scope.user= user;
$scope.userData = {}; // <-- HERE I WANT TO STORE RESPONSE
$scope.logIn = function() { // function runs on click
getUserFactory.getUserData(user.email, user.password).success(function(response){
$scope.userData = response.objects[0];
});
};
而且簡單的點擊功能我用它來測試它是否工作:
$scope.consoleLog = function() {
console.log($scope.userData);
};
我假設我的問題與javascript的異步連接,但我總是調用$ http get()用戶點擊「登錄」按鈕),然後嘗試使用響應來顯示用戶詳細信息。但在$scope.logIn()
之外,$scope.userData
又成爲空對象。
你爲什麼要存儲這種迴應? –
你能設置一個plunkr嗎?這將有助於更快地獲得解決方案。 –
是「UserController」中的「consoleLog」方法? – CodingNinja