2016-11-24 9 views
0

のプロパティを読み取ることができません「データは、」私は私にしようとするとapp/heroes/1/jobs角度メモリーのWeb APIでは2 - ヌル

をURLにポストすることが可能ですCannot read property 'data' of null

createJob(hero: Hero, job: Job): Observable<Job> { 
    const url = `${this.heroUrl}/${hero.id}/jobs`; 
    return this.http.post(url, JSON.stringify(job), {headers: this.headers}) 
    .map(res => res.json().data) 
    .catch(this.handleError); 
} 

答えて

2

カスタマイズすることはできません(実際には簡単な作業ではありませんが、実行可能です)。何が起こっていることは1/jobsheroesコレクションのIDであると解釈され、そして次は

let heroes = [...] 
let id = '1/jobs' 
return heroes.find(hero => return hero.id === id); 

私が言ったようにnullであるので、それはあなたがそれをカスタマイズすることができ、nullを返しますが、それはいくつかの仕事を取るだろうということです。オーバーライドするHTTPメソッドごとにレスポンスインターセプタまたはインターセプタを追加して、parseUrlをオーバーライドします。 exampleが表示されます。それはthe docsにいくらか説明されています。

私はこの問題に従ってきましたが、これはメンテナが、これがデモ用のツールであると感じていて、堅牢で適切なものを作るためにあまり時間を費やしたくないと思われますほとんどの場合。カスタマイズは本当に簡単な作業ではありませんが、カスタマイズ可能にするだけです。

+0

説明をありがとう – locnguyen

-1

エラーを取得し、これを試してみてください。

.map((res:Response) => res.json().data) 
+0

同じエラー – locnguyen

+1

このコードスニペットは問題を解決する可能性がありますが[説明を含む](// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)あなたの投稿の質を向上させる。将来読者の質問に答えていることを覚えておいてください。そうした人々はあなたのコード提案の理由を知らないかもしれません。あなたのコードに説明的なコメントを詰め込まないようにしてください。これは、コードと説明の両方の可読性を低下させます! – kayess

関連する問題