2017-05-01 10 views
0

jsonオブジェクトと配列を繰り返し処理する必要があります。具体的には、レビューでアレイを返す必要があります。Angular2:配列のみを取得するように繰り返します。

は、私はこのような私のAPIから取得し、エンドポイント:

{total_reviews: 206, average_score: 4.2,…} 
average_score 
: 
4.2 
reviews 
: 
[{meta_id: "259", rating_post_id: "5", rating_user_id: "1", rating_user_name: "christophe",…},…] 
total_reviews 
: 
206 

そして、私の角度サービスで

は、私はこのように私のエンドポイントを取得:

getReviewsByPostId(paramsObj) { 
    let params = this.util.transformRequest(paramsObj); 
    return this.http.get(this.wpApiURL + '/reviews?' + params) 
     .map(res => { 
      this.reviews = res.json(); 
      return this.reviews; 
     }); 
} 

は、私はまた、コンポーネントを持っています

loadReviews(postId) { 
    this.wp.getReviewsByPostId({post: postId}).subscribe(
     data => { 
      console.log(data); 
      this.reviews = data; 
     }, 
     error => {}    
    ); 
} 

私の角型アプリで配列をレビューする方法は何ですか?そして、total_reviewsとaverage_scoreではない

ありがとうございます!

+0

前者はそれが仕事な角度2と4 –

答えて

1

あなたは直接あなたのJSONレスポンス イム正確な構文がわからないから「レビュー」の値にアクセスするが、あなたが代わりに実行することができ、次の

res.json().reviews 

または

res.reviews 

のいずれかを試すことができますJSONレスポンスの 'foreach'を使用して、必要な特定のキーの値のみを取得します(ケースレビューの場合)

例:

getReviewsByPostId(paramsObj) { 
    let params = this.util.transformRequest(paramsObj); 
    return this.http.get(this.wpApiURL + '/reviews?' + params) 
    .map(res => { 
     this.reviews = res.json(); 
     angular.forEach(this.reviews,function (key,value){ 
     if(key==='reviews'){ 
     //store value in an array or any other data container 
     } 
     }); 
     // return array/dataContainer; 
    }); 
    } 
+0

のため..ですangularjs角度タグを使用していないしてください:) ありがとうございます! – christophebazin

関連する問題