Javascript Angular JS承诺使用$http——循环返回数据

Javascript Angular JS承诺使用$http——循环返回数据,javascript,angularjs,angular-promise,Javascript,Angularjs,Angular Promise,我使用$http从数据库中获取一些数据。我可以成功地获取数据,但是在我可以在前端向用户显示数据之前,我想循环数据并进行一些更改 $http.get("/getList").then(function(data ̶,̶ ̶s̶t̶a̶t̶u̶s̶ ) { // setting data to the front end $scope.returnedData = data.data; },function errorCallback(response) {

我使用$http从数据库中获取一些数据。我可以成功地获取数据,但是在我可以在前端向用户显示数据之前,我想循环数据并进行一些更改

$http.get("/getList").then(function(data  ̶,̶ ̶s̶t̶a̶t̶u̶s̶ ) {
        // setting data to the front end
        $scope.returnedData = data.data;

   },function errorCallback(response) {

    console.log(response.data.message)

    });
}
我的循环函数:

if($scope.returnedData.modules.length > 0){
     for(var i=0; i<=$scope.returnedData.modules.length; i++){
           if($scope.returnedData.modules[i].carType === 2){
               $scope.returnedData.modules[i].carModel = $scope.returnedData.modules[i].carModel / 52;
         } else if($scope.returnedData.modules[i].truckType === 2){
               $scope.returnedData.modules[i].truckModel = $scope.returnedData.modules[i].truckModel / 52;
            }
        }
  }
if($scope.returnedData.modules.length>0){

对于(var i=0;i只需在将结果存储到
$scope
变量之前处理获取的数据:

$http.get("/getList")
  .then(function(data, status) {
    if(data.data.modules.length > 0) {
      for(var i=0; i<=data.data.modules.length; i++) {
        if(data.data.modules[i].carType === 2) {
          data.data.modules[i].carModel = data.data.modules[i].carModel / 52;
        } else if(data.data.modules[i].truckType === 2){
          data.data.modules[i].truckModel = data.data.modules[i].truckModel / 52;
        }
      }
    }
    // Storing the result
    $scope.returnedData = data.data;
  })
  .catch(function(error) {
    console.error(error)
  });

在将结果存储到
$scope
变量之前,只需处理获取的数据:

$http.get("/getList")
  .then(function(data, status) {
    if(data.data.modules.length > 0) {
      for(var i=0; i<=data.data.modules.length; i++) {
        if(data.data.modules[i].carType === 2) {
          data.data.modules[i].carModel = data.data.modules[i].carModel / 52;
        } else if(data.data.modules[i].truckType === 2){
          data.data.modules[i].truckModel = data.data.modules[i].truckModel / 52;
        }
      }
    }
    // Storing the result
    $scope.returnedData = data.data;
  })
  .catch(function(error) {
    console.error(error)
  });

要链接承诺,数据返回到
。然后
方法处理程序函数:

var promise = $http.get("/getList").then(function(response  ̶,̶ ̶s̶t̶a̶t̶u̶s̶ ) {
        // setting data to the front end
        $scope.returnedData = response.data;
        ͟r͟e͟t͟u͟r͟n͟ response.data;

   },function errorCallback(response) {

    console.log(response.data.message)
    //IMPORTANT
    throw response;

    });
然后从返回的承诺中链接

promise.then(function(data) {
    if(data.modules.length > 0){
         for(var i=0; i<=data.modules.length; i++){
            //code ...
         };
    };
});
promise.then(函数(数据){
如果(data.modules.length>0){

对于(var i=0;i从承诺链,数据返回到
。然后
方法处理函数:

var promise = $http.get("/getList").then(function(response  ̶,̶ ̶s̶t̶a̶t̶u̶s̶ ) {
        // setting data to the front end
        $scope.returnedData = response.data;
        ͟r͟e͟t͟u͟r͟n͟ response.data;

   },function errorCallback(response) {

    console.log(response.data.message)
    //IMPORTANT
    throw response;

    });
然后从返回的承诺中链接

promise.then(function(data) {
    if(data.modules.length > 0){
         for(var i=0; i<=data.modules.length; i++){
            //code ...
         };
    };
});
promise.then(函数(数据){
如果(data.modules.length>0){

对于(var i=0;i您不需要在这里链接,您可以直接从
/getList
ajax
调用
我的循环函数:
。然后
成功的回调函数..@PankajParkar谢谢您的评论。我应该首先从
/getList中调用循环函数。然后
然后设置
$scope。将返回的数据
放在前端e。)nd?我对顺序感到困惑。你能提供一个例子吗?你不需要在这里链接,你可以直接从
/getList
ajax
调用
我的循环函数:
。然后
成功回调函数..@PankajParkar谢谢你的评论。我应该先从
/getList.然后调用循环函数吗e> 然后将
$scope.returnedData
设置到前端?我对序列感到困惑。你能提供一个例子吗?谢谢你的回答。我试过了,但似乎不起作用。我遇到以下错误
无法读取未定义的属性“carType”
我已经检查过,
carType
未定义。我可以使用天行者,它说
modules[i]
未定义的
,而不是
carType
。尝试添加属性检查,如
for(var i=0;iThanks for the reply)。这似乎有效。但我不明白,
modules[i]
从来都不是空的。添加支票如何解决问题?这样我才能更好地理解我做错了什么。@Skywalker,我将在几分钟内用支票更新答案minutes@Skywalker,查看更新的答案。它是否帮助您找到问题?谢谢您的答案。我尝试了它,但似乎不起作用。我得到了以下答案ror
无法读取未定义的属性“carType”
我已经检查过,并且
carType
没有定义。我可以在控制台中看到它。@天行者,它说
模块[I]
未定义的
,而不是
carType
。请尝试添加属性存在性检查,如
(var i=0;我希望得到答复。这似乎有效。但我不明白,
模块[i]
从来都不是空的。添加支票如何解决问题?这样我才能更好地理解我做错了什么。@Skywalker,我将在几分钟内用支票更新答案minutes@Skywalker,查看更新的答案。它是否帮助您找到问题?