Javascript 将字符串数组传递给$http get服务,每次传递一个。Angular.js

Javascript 将字符串数组传递给$http get服务,每次传递一个。Angular.js,javascript,angularjs,arrays,http,Javascript,Angularjs,Arrays,Http,有一系列的字符串[“史蒂文·威尔逊”,“梦剧场”,“深紫色”,“斯莱普克诺”] 我需要一次一个地将每个字符串传递给$http服务,以便相关数据显示在屏幕上 但是,它只显示其中三个字符串的数据,只显示其中一个字符串的名称和流行度。它将显示所有三个的轨迹 请记住,我有另一个函数,其中用户手动传递字符串,它会正确显示数据,我尝试手动传递数组中的每个数据,它会正确显示,因此数据的访问方式没有问题 而且,我得到了这个错误 $scope.sampleData = function() { var

有一系列的字符串
[“史蒂文·威尔逊”,“梦剧场”,“深紫色”,“斯莱普克诺”]
我需要一次一个地将每个字符串传递给$http服务,以便相关数据显示在屏幕上

但是,它只显示其中三个字符串的数据,只显示其中一个字符串的名称和流行度。它将显示所有三个的轨迹

请记住,我有另一个函数,其中用户手动传递字符串,它会正确显示数据,我尝试手动传递数组中的每个数据,它会正确显示,因此数据的访问方式没有问题

而且,我得到了这个错误

  $scope.sampleData = function() {
    var output;
    $scope.sampleArtist.map(function(el){
      $http.get('https://api.spotify.com/v1/search?type=artist&q='+el).then(function(data) {
        console.log(data);
        output = data;
              console.log(data.data.artists.items[0].name);
              $scope.artist.name = data.data.artists.items[0].name;
              $scope.artist.popularity = data.data.artists.items[0].popularity;
            }).then(function(){
              $http.get('https://api.spotify.com/v1/artists/'+ output.data.artists.items[0].id +'/top-tracks?country=SE').then(function(response) {
        $scope.artist.tracks = response.data.tracks;
        $scope.artists.push($scope.artist);
        $scope.artist = {};
              })
            })
      })
    }

您正在每个请求回调中覆盖
name
popularity
,因此只有最后收到的请求才可用。需要更多关于如何显示的细节,但为什么要显示所有曲目?在plunker中创建一个演示<代码>曲目也会在显示的代码中被覆盖
angular.js:14328 TypeError: Cannot read property 'name' of undefined
    at http://127.0.0.1:3000/assets/js/app.js:33:53
    at http://127.0.0.1:3000/bower_components/angular/angular.min.js:133:460
    at m.$eval (http://127.0.0.1:3000/bower_components/angular/angular.min.js:147:313)
    at m.$digest (http://127.0.0.1:3000/bower_components/angular/angular.min.js:144:421)
    at m.$apply (http://127.0.0.1:3000/bower_components/angular/angular.min.js:148:78)
    at l (http://127.0.0.1:3000/bower_components/angular/angular.min.js:101:89)
    at XMLHttpRequest.t.onload (http://127.0.0.1:3000/bower_components/angular/angular.min.js:106:489) Possibly unhandled rejection: {}