2017-11-02 19 views
4
constructor(private http: HttpClient) { 
    } 
    ngOnInit() { 
    this.http.get('url').subscribe(data => { 
    console.log(data); 
    console.log(data.login); 
    }); 
    } 
} 

ここでは、コンソールでログインしてデータを見ることができますが、プロパティのログインがデータに存在しないというエラーが表示されます。インターフェイスを使用せずにこれを回避する方法はありますか?私が手に入れたいデータはかなり大きいので、将来変更される可能性があるので、もっと良い方法がありますか?あなたは結果フィールドにアクセスするためのブラケット表記を使用しているためオブジェクトに角のあるhttpClientの戻り値のプロパティがありません

+0

console.log(data)で表示される値を追加できますか? –

答えて

3

docs状態HttpClientを使用して...上記の例では

this.http.get('/api/items').subscribe(data => { 
    // Read the result field from the JSON response. 
    this.results = data['results']; 
}); 

は、 data['results']フィールドアクセスが際立っています。 data.resultsを書き込もうとすると、TypeScriptは、HTTPから戻ってくるオブジェクトに resultsプロパティがないことを正しく告げるでしょう。これは、 HttpClientがJSONレスポンスをオブジェクトに解析していたのに対し、そのオブジェクトがどのような形状であるかを知らないためです。

あなたのオプションは、(両方のドキュメントと私が提案する)応答を入力するか、かっこ表記を使用することです。

関連する問題