2017-03-20 35 views
1

私はAngularを初めて使っていますが、Ajax呼び出しを行い、ユーザーをランダムユーザージェネレーターAPIから一覧表示で管理しています。 これで、ユーザーをクリックしながら詳細なビューを作成したいと考えています。それは、詳細ビューではなく、選択したものに私のユーザーを与えるんランダムユーザージェネレーターAPI - IDでユーザーを取得する角度JS

$scope.fetchInfoById = function(info_id) {  
    $http.get("https://randomuser.me/api/?id.value="+info_id) 
    //also tried: $http.get("https://randomuser.me/api/?id/value="+info_id) 
      .success(function(data) { 
      $scope.oneUserResult = data.results; 
    }); 
} 

:fetchInfoById(user.id.value) 私のスクリプトで機能: は私のHTMLでは、私は、関数呼び出しを行います。私は間違って何をしていますか?

+0

あなたのAPIコールは、あなたがそれを呼び出すたびにランダムなユーザーを返すために起こっています。毎回実際のAPI呼び出しを試みるのではなく、リスト全体をキャプチャしてメモリにキャッシュしてアクセスするほうが良いかもしれません。 – Chris

+1

のようにリクエストURLをフォーマットする必要があります。https://randomuser.me/api/?id=info_id – Dylan

答えて

0
はこれにあなたのコードを変更

また
$scope.fetchInfoById = function(info_id) {  
    $http.get("https://randomuser.me/api/?id="+info_id) 
    //also tried: $http.get("https://randomuser.me/api/?id/value="+info_id) 
     .success(function(data) { 
     $scope.oneUserResult = data.results; 
    }); 
} 

を、あなたはこの関数に正しい値を渡していることを確認してください。

0

APIコール "https://randomuser.me/api/?results=5"からユーザーリストを取得します。

$scope.getAllUsers= function(resultCount) {  
     $http.get("https://randomuser.me/api/?results="+resultCount) 
      .success(function(data) { 
      $scope.users= data.results; 
    }); 

画面に表示します。

1つのレコードをクリックすると、以前にフェッチされたユーザーの特定のレコードの詳細がフェッチされます。

$scope.getUserById= function(userId) { 
    return $scope.users.filter(function(user) { 
     return user.id.value=== userId; 
    })[0]; // apply necessary null/undefined checks wherever required. 
    } 
0

あなたの良い提案をありがとう。 私はそれが乱数発生器である知っているが、これにリクエストのパラメータを設定する:その後、私は一人一人のIDをフェッチ

$http.get('https://randomuser.me/api/?results=15&seed=abc&inc=gender,name,location,email,dob,phone,cell,id,picture,info,nat&nat=gb') 
    .success(function(response){ 
     $scope.userResult = response.results; 
}); 

:「シード= ...」、同じ人物がそれぞれのリストビュー要求に表示されています詳細ビューの要求の関数呼び出しにパラメーターとして渡されます。

私は確かに、私は詳細ビュー要求のための正しい値に渡され、その後も、要求IE用 パラメータハードコードにするために)(はconsole.logで試してみました:背後

$scope.getInfoById = function(info_id) {  
    console.log("from HTML: "+info_id.value); // = JK 00 46 67 
    $http.get("https://randomuser.me/api/?id="+'JK 00 46 67 H') ...    

ジェイソンデータをAPIはidプロパティのために次のようにフォーマットされています。

{ 
    "results": [ 
    { 
    "id": { 
     "name": "BSN", 
     "value": "04242023" 
    },... 

IDで1人のユーザーを取得する方法はまだ分かりません。 2番目のリクエストを作成する代わりに、詳細ビューのパラメータとして「クリックされたユーザー」を渡すことができました。

0

別の方法でNG-モデルを使用して:

$scope.user = {}; 
$scope.fetchInfoById = function() {  
    $http.get("https://randomuser.me/api/?id="$scope.user.id) 
     .success(function(data) { 
     $scope.oneUserResult = data.results; 
    }); 
} 
関連する問題