javascript - Angular JS Promises with $http——循环返回的数据

标签 javascript angularjs angular-promise

我正在使用 Angular $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;
            }
        }
  }

如何链接 Angular promise ,以便一旦获得数据,我就可以循环遍历它并根据需要进行更改,然后将其设置到前端。

最佳答案

只需处理获取的数据,然后将结果存储到 $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)
  });

类似的代码检查是否存在以及 modulesWithCartypeEqualToTwomodulesWithTrucktypeEqualToTwo 数组,以实现更舒适的调试:

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

关于javascript - Angular JS Promises with $http——循环返回的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45266520/

相关文章:

javascript - 使用 ng-bootstrap 从 Api 获取数据的 Angular 6 分页

javascript - PhoneGAP、iOS、 'getFile' 回调不调用 JavaScript 回调

css - Angular Material 芯片 rtl

angularjs - 需要在 $stateProvider 内部的 resolve 属性执行之前解析 $http 请求

javascript - $q 是否包含 promise 链解析/拒绝时的隐式摘要/应用?

javascript - 使用表达式并在 ng-class 中将所有内容加在一起

javascript - Google 电子表格脚本 - 获取日期作为数字

javascript - angularjs使用拼接函数删除选定的项目

angularjs - ondrop ondragover - Uncaught ReferenceError : ondrop is not defined - angular - html5 draggable

javascript - 为什么在 Angular 服务中使用 $http 时返回 promise 和数据?