我正在我的后端执行GET请求以检索一些JSON数据。我想将一部分数据存储在变量中,因为我想在请求后使用它。但每次,变量都是未定义的,而我在另一个控制器中做同样的事情。有人能告诉我我做错了吗?
这是代码:
var itemNumber;
$http.get(URLtoServer + 'serialNumber/' + $stateParams.serialNumber + '/?format=json').success(function(dataSerialNumber){
itemNumber = dataSerialNumber.id;
}).error(function(){
//code
});
console.log(itemNumber);
item.number = itemNumber;
编辑POST CALL:
var postPromise = $http.post(URLtoServer + 'problem/', item);
postPromise.success(function (response) {
angular.extend(item, response);
showIssueReportedAlert($mdDialog);
$http.get('assets/settings/general.json').success(function(data){
companyURL = data[0].url;
$timeout(function(){
//$window.location.href = companyURL;
}, 3000);
});
});
postPromise.error(function(){
showErrorAlert($mdDialog);
$scope.renderSendbutton = true;
$scope.showProgressCircular = false;
});
答案 0 :(得分:2)
您正在执行异步get
请求,该请求会立即返回,然后将itemNumber(自get
请求尚未完成时尚未定义)分配给您的{{1 }}
您需要在回调中进行分配:
item.number
答案 1 :(得分:2)
您可以将$http
来电function
调用到.success
内并在GET的 var itemNumber;
$http.get(URLtoServer + 'serialNumber/' + $stateParams.serialNumber + '/?format=json').success(function(dataSerialNumber){
itemNumber = dataSerialNumber.id;
console.log(itemNumber);
item.number = itemNumber;
doPostCallNow(); //Calling the POST
}).error(function(){
//code
});
function doPostCallNow(){
var postPromise = $http.post(URLtoServer + 'problem/', item);
//And rest of your code...
}
中调用。
heat.exe: The directory could not be found