在Angular控制器中组合两个API请求

时间:2016-12-23 14:37:34

标签: javascript angularjs api

我正在开发一个使用NASA的Open API的小型应用程序。我目前每个请求都有一个控制器,具体取决于路由器返回的照片。我希望将这两个控制器合二为一,同时能够选择返回照片的流动站。

app.controller('OpportunityController', function($scope, $http) {

  // get date
  let today = new Date();
  let dd = today.getDate() - 5;
  let mm = today.getMonth() + 1;
  let yyyy = today.getFullYear();

  if (dd < 10) {
      dd = '0' + dd
  }
  if (mm < 10) {
      mm = '0' + mm
  }
  today = yyyy + '-' + mm + '-' + dd;

  // set variables
  $scope.baseUrl = "https://api.nasa.gov/mars-photos/api/v1/rovers/";
  $scope.rover = ["Opportunity"];
  $scope.date_params = "/photos?earth_date=" + today;
  $scope.searchParams = $scope.rover + $scope.date_params;
  $scope.key = "&api_key=API_KEY";

  // request
  $http.get($scope.baseUrl + $scope.searchParams + $scope.key)
      .success(function(result) {
          $scope.photos = result.photos;
          console.log($scope.photos);
      })
      .error(function(error) {
          console.log(error);
      });
});

app.controller('MarsController', function($scope, $http) {

    // get date
    let today = new Date();
    let dd = today.getDate()-1;
    let mm = today.getMonth()+1;
    let yyyy = today.getFullYear();

    if(dd<10) {
        dd='0'+dd
    }
    if(mm<10) {
        mm='0'+mm
    }
    today = yyyy+ '-' +mm+ '-' +dd;

    // set variables
    $scope.baseUrl = "https://api.nasa.gov/mars-photos/api/v1/rovers/";
    $scope.rover = ["Curiosity"];
    $scope.date_params = "/photos?earth_date=" + today;
    $scope.searchParams = $scope.rover + $scope.date_params;
    $scope.key = "&api_key=API_KEY";

    // request
    $http.get($scope.baseUrl + $scope.searchParams +  $scope.key)
        .success(function(result) {
            $scope.photos = result.photos;
            console.log($scope.photos);
        })
        .error(function(error){
            console.log(error);
        });
});

1 个答案:

答案 0 :(得分:0)

没有看到问题

$http.get($scope.baseUrl + $scope.searchParams + $scope.key)
      .success(function(result) {
          $scope.photos = result.photos;
          console.log($scope.photos);
      })
      .error(function(error) {
          console.log(error);
      });
$http.get($scope.baseUrl + $scope.searchParams + $scope.key)
      .success(function(result) {
          $scope.photos = result.photos;
          console.log($scope.photos);
      })
      .error(function(error) {
          console.log(error);
      });