从函数中获取返回值是d
Getting return value from function is d
我是使用AngularJS和JavaScript的新手。返回值后,我得到了d
。我调用函数是否正确?请告诉我我在下面的代码中做错了什么。提前谢谢。这是我的代码:
function volunteerNumbr (ProspectID){var value1;
console.log("volunteerNumbr[i].ProspectID",ProspectID)
$http.get(baseURL + 'participant/prospectid/'+ProspectID).success(function(participantData, status, headers, config){
var participantData=JSON.stringify(participantData);
if(JSON.parse(participantData) == null){
value1 = -1;
//console.log ("$rootScope.value1",$rootScope.value);
}
else{
value1 = JSON.parse(participantData).length;
console.log ("$rootScope.value2",$rootScope.value);
}
}).error(function(data, status, header, config) {
console.log("not fecthed")
});
console.log ("$rootScope.value3",value1);
return value1;
}
$http.get(baseURL + 'prospect/all/').success(function(data, status, headers, config) {
$scope.prospects = data; //show data on list
var prospect=JSON.stringify($scope.prospects);
var prospect=JSON.parse(prospect);
var prospectLength = prospect.length;
for(var i = 0; i < prospectLength; i++){
prospect[i].num = volunteerNumbr(prospect[i].ProspectID);
}
console.log("all prospect",prospect);
}).error(function(data, status, header, config) {});
$http.get()
实际上返回了一个promise对象,而不是您在success()
、中返回的数据
因此,如果您需要在成功块内设置值prospect[i].num
,如下所示通过将$http.get
封装在IIFE(立即调用函数表达式)中来创建一个函数,并将当前索引值传递到for循环中,以便包含该ajax调用的索引值。
JS代码:
$http.get(baseURL + 'prospect/all/').success(function(data, status, headers, config) {
$scope.prospec = data; //show data on list
var prospect=JSON.stringify($scope.prospec);
var prospect=JSON.parse(prospect);
//console.log("all prospect",prospect.length);
var prospectLength = prospect.length;
for(var i = 0; i < prospectLength; i++){
// prospect[i].num = volunteerNumbr(prospect[i].ProspectID);
//Creating a IIFE and enclose the $http.get inside it
(function (index) {
$http.get(baseURL + 'participant/prospectid/'+prospect[i].ProspectID).success(function(participantData, status, headers, config){
var participantData=JSON.stringify(participantData);
if(JSON.parse(participantData) == null){
prospect[index].num =-1;
}
else{
prospect[i].num =JSON.parse(participantData).length;
}
}).error(function(data, status, header, config) {
console.log("error")
});
}(i));
console.log("num",prospect[i].num);
}
console.log("all prospect",prospect);
$scope.prospects= prospect;
console.log("all $scope.prospects",$scope.prospects);
}).error(function(data, status, header, config) {});
相关文章:
- 如何从客户端的数组中获取用户输入和返回值
- 如何获取事件的返回值
- 获取最后一个返回值
- AngularJS:如何获取$http结果作为函数的返回值
- 如何在 Python 中获取此 JavaScript 函数的返回值
- 如何获取 jQuery 回调触发返回值
- 从ID Jquery类获取返回值时出现问题
- JSON获取地理位置在HTML中未返回值
- 如何获取在HTML页面上执行的Javascript函数的返回值
- 从 html.append 追加的 html 下拉列表中获取返回值
- 如何从Ajax请求中获取返回值并将其分配到元素中
- 安卓webview活动,如何获取js返回值
- 如果我使用html表单(而不是ajax),则获取服务器的响应代码或返回值
- jQuery deferred:用于延迟函数的返回,直到函数内的异步调用完成+获取返回值
- 如何使用Ajax内部调用JQuery在函数中获取返回值
- 在检查选中哪个按钮并从字段中获取值后返回值
- 如何在 javascript 中获取递归函数来输出每个返回值
- 获取 jQuery get().done() 函数的返回值
- 无法在 jQuery 中获取 Rails 返回值
- 将Angular $http返回值获取到另一个对象中