未定义变量 $http 请求
Undefined variable $http request
我正在后端执行 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呼叫:
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;
});
您正在执行异步 get
请求,该请求立即 returns,然后分配 itemNumber(由于 get
请求尚未完成,目前未定义) 到您的 item.number
.
你需要在回调中做赋值:
var itemNumber;
$http.get(URLtoServer + 'serialNumber/' + $stateParams.serialNumber + '/?format=json').success(function(dataSerialNumber){
itemNumber = dataSerialNumber.id;
console.log(itemNumber);
item.number = itemNumber;
}).error(function(){
//code
});
您可以将 POST $http
调用放在 function
中,然后在 GET 的 .success
中调用它。
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...
}
我正在后端执行 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呼叫:
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;
});
您正在执行异步 get
请求,该请求立即 returns,然后分配 itemNumber(由于 get
请求尚未完成,目前未定义) 到您的 item.number
.
你需要在回调中做赋值:
var itemNumber;
$http.get(URLtoServer + 'serialNumber/' + $stateParams.serialNumber + '/?format=json').success(function(dataSerialNumber){
itemNumber = dataSerialNumber.id;
console.log(itemNumber);
item.number = itemNumber;
}).error(function(){
//code
});
您可以将 POST $http
调用放在 function
中,然后在 GET 的 .success
中调用它。
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...
}