Javascript 如何将$http get响应存储在可从$http函数(Angularjs)外部访问的变量中?
我还在学习angular和javascript,我发现了stack 溢出真的很有用。事实上,这是我第一次在其他问答中找不到解决问题的方法。我尝试了很多解决方案,但都不管用 简而言之:我想将$HTTPGET(用户数据)的响应保存在变量中,这样我就可以在这个控制器的其他函数中使用它 带有$http get函数的我的工厂:Javascript 如何将$http get响应存储在可从$http函数(Angularjs)外部访问的变量中?,javascript,angularjs,factory,http-get,Javascript,Angularjs,Factory,Http Get,我还在学习angular和javascript,我发现了stack 溢出真的很有用。事实上,这是我第一次在其他问答中找不到解决问题的方法。我尝试了很多解决方案,但都不管用 简而言之:我想将$HTTPGET(用户数据)的响应保存在变量中,这样我就可以在这个控制器的其他函数中使用它 带有$http get函数的我的工厂: app.factory('getUserFactory', ['$http', function($http){ return { getUser
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];
});
};
我假设我的问题与javascript的异步有关,但我总是先调用$HTTPGET(用户单击“登录”按钮),然后尝试使用响应显示用户详细信息。但是在
$scope.logIn()
之外,$scope.userData
再次成为空对象。我假设您正在onclick中调用logIn方法。请尝试以下操作:
$scope.logIn = function() { // function runs on click
getUserFactory.getUserData(user.email, user.password).then(function(response){
$scope.userData = response.objects[0];
});
}) 我假设您正在onclick中调用login方法
$scope.logIn = function() { // function runs on click
getUserFactory.getUserData(user.email, user.password).then(function(response){
$scope.userData = response.objects[0];
});
}) 为什么要存储该响应?能否设置一个plunkr?这将有助于更快地找到解决方案。“UserController”中是否有“consoleLog”方法?我想存储响应,以便显示响应详细信息(如用户名)在站点上,并在其他函数(如$http patch)中使用响应详细信息-这样用户就不必再次写入用户名“consoleLog()是“UserController”中的方法为什么要存储该响应?您可以设置一个plunkr吗?这将有助于更快地找到解决方案。是“consoleLog”吗“UserController”中的方法?我想存储响应,以便在站点上显示响应详细信息(如用户名),并在其他函数(如$http patch)中使用响应详细信息,这样用户就不必再次写入用户名。“consoleLog()是“UserController”中的方法