2

クエリから API への JSON 応答から特定のオブジェクトを取得しようとしています。応答から、クリックされた結果から ID を取得し、それを他の 2 つの http クエリの URL に渡そうとしています。

それを達成するために正しい方向に私を向けることができますか?

ここに私の現在のservices.jsがあります:

angular.module('myApp', ['ngResource'])

function Ctrl($scope, $http) {
var get_results = function(name) {
  if (name) {
    $http.get('http://api.discogs.com/database/search?type=artist&q='+ name +'&page=1&per_page=30').
      success(function(data3) {
        $scope.results = data3.results;
      });
  }
}
$scope.name = '';
$scope.$watch('name', get_results, true);



$http.get('http://api.discogs.com/artists/3823').
  success(function(data) {
      $scope.artist = data;
  });
$http.get('http://api.discogs.com/artists/3823/releases?page=1&per_page=200').
  success(function(data2) {
      $scope.releases = data2.releases;
  });
};

ディレクティブ.js:

angular.module('myApp', ['ngResource'])

.directive('artistData', function() {

  return{
      restrict: 'E',
      template: '<div class="col-md-12"> \
                 <h1>Artist</h1>  \
                  {{artist.name}} \
                 <h1>Real name</h1> \
                  {{artist.realname}} \
                 <h1>Profile</h1> \
                  {{artist.profile}} \
                 <h1>Releases</h1> \
                  <ul><li ng-repeat="release in releases | filter:{ role: \'main\' }"> {{release.title}} ({{release.year}})</li></ul> \
                 <h1>Remixes</h1> \
                  <ul><li ng-repeat="release in releases | filter:{ role: \'remix\' }"> {{release.title}}</li></ul> \
                 </div>',
      replace: true
  };
 })  

そして、ID を取得する必要がある場所からの JSON 応答の一部:

1: {thumb:http://api.discogs.com/images/default-artist.png, title:Alva (2),…}
 id: 796507
 resource_url: "http://api.discogs.com/artists/796507"
 thumb: "http://api.discogs.com/images/default-artist.png"
 title: "Alva (2)"
 type: "artist"
 uri: "/artist/Alva+%282%29"

最後に、関連する HTML:

<ul>
    <li ng-repeat="result in results" ng-click="">{{result.title}}</li>
</ul>

動作する Plunkerも作成しました。基本的に、現在、検索は完全に機能していますが、ディレクティブはクエリ URL で定義された ID (3823) で満たされています。私がする必要があるのは、結果が表示されて結果がクリックされたら、この特定の結果の ID を取得して他の 2 つの URL に渡すことです。

したがって、代わりに:

$http.get('http://api.discogs.com/artists/3823').

私は持っているだろう

$http.get('http://api.discogs.com/artists/'+artistid).
4

1 に答える 1