2017-01-26 35 views
1

を表示することができませんでしAngular2は、私は、JSONレスポンスからのデータを表示することができません:私は問題がないtrack.successにしようとすると角度2テンプレートでは、JSON応答

{ 
    "success": true, 
    "data": { 
    "id": 5, 
    "user_id": 1, 
    "category_id": 1, 
    "title": "ghfjhgf", 
    "body": "jhgfjhgf", 
    "created": "2017-01-19T18:22:02+00:00", 
    "modified": "2017-01-19T18:22:02+00:00", 
    "file": null, 
    "column_9": null, 
    "category": { 
     "id": 1, 
     "name": "Running", 
     "body": "Regroupe toutes les traces relative à la course à pied." 
    }, 
    "user": { 
     "id": 1, 
     "email": "[email protected]", 
     "username": "user", 
     "role": "user", 
     "active": true, 
     "created": "2017-01-15T16:21:44+00:00", 
     "modified": "2017-01-15T16:21:44+00:00" 
    } 
    } 
} 

、それは本当表示しますが、私がしようとすると、

track.data.id 
track['data'].id 
track['data']['id'] 

私は未定義のプロパティを持っています。私は助けてください。前もって感謝します。

これは{{track | JSON}}

{ 
    "success": true, 
    "data": { 
    "id": 6, 
    "user_id": 1, 
    "category_id": 1, 
    "title": "dsfasd", 
    "body": "afdasf", 
    "created": "2017-01-19T18:27:26+00:00", 
    "modified": "2017-01-19T18:27:26+00:00", 
    "file": null, 
    "column_9": null, 
    "category": { 
     "id": 1, 
     "name": "Running", 
     "body": "Regroupe toutes les traces relative à la course à pied." 
    }, 
    "user": { 
     "id": 1, 
     "email": "[email protected]", 
     "username": "user", 
     "role": "user", 
     "active": true, 
     "created": "2017-01-15T16:21:44+00:00", 
     "modified": "2017-01-15T16:21:44+00:00" 
    } 
    } 

これは私のサービスである:

view(id):Observable<any> { 
     return this.http.get('http://cake/api/tracks/' + id + '.json') 
      .map(response => response.json()); 
    } 

マイコンポーネント:

ngOnInit() { 

     this.sub = this.route.params.subscribe((params: Params) => { 
      this.id = +params['id']; 
     }) 
     this.trackService.view(this.id).subscribe(track => this.track = track); 
    } 
+1

行う ''

{{track | json}}
、それは – VSO

+0

は、おそらくあなたの 'track'が古いオブジェクトにrefferenceを保持しているが、あなたのJSONを新しいものに移入された返すものを貼り付けます。ロジックを確認してください。 'track = myJson; myJson = newJson'となり、トラックは同期外れになります –

+0

@VSOありがとうございました。私の投稿を出力で編集しました。 – quepasso

答えて

1

あなたがオブジェクトの内部プロパティを表示したいときは、航行安全(エルビス)演算子を使用する必要があります

track['data']?.id 
track?.data?.id 

json pipeすべてのデータをjson形式で表示します。

track?.data | json 
track | json 
UIで
+0

トラック['data']?idとtrack?.data?.idで正常に動作します。ありがとうございました!!!!!!!!! – quepasso

+1

完了!回答が受け入れられました! – quepasso

+0

@PankajParkarごまかしてください。 「?」は、データが入手できない場合があると思いましたか?明らかにあなたの答えはうまくいきましたが、どうやってそれに来ましたか?アップボーニング。 – VSO

関連する問題