0
我知道有很多這方面的問題,但我嘗試了很多技巧,問題仍然存在。Angular Http得到可觀察
我實現了返回可觀察到的一個GET:
public getEstatisticasPara(motorista:Motorista): Observable<EstatisticaAvaliacao> {
let params = new URLSearchParams();
params.set(Config.ESTATISTICA_AVALIACAO_REQUEST_PARAM, motorista.getId().toString());
let options = new RequestOptions({ headers: this.headers, params: params });
return this.http.get(this.path, options)
.map((res) => res.json)
.catch(this.handleError);
}
當我嘗試訂閱總是得到一個未定義:
atualizaMediaAvalicaoes(){
let motorista:Motorista = FlyweightFactory.getInstanceOf("motorista");
motorista.setId(1);
this.estatisticaAvaliacaoProvider.getEstatisticasPara(motorista)
.subscribe((res)=>{
console.log(JSON.stringify(res));
let estatisticaAvaliacao:EstatisticaAvaliacao = EstatisticaAvaliacao.fromJson(res);
this.storage.set("mediaAvaliacao", estatisticaAvaliacao.getMedia());
},(err)=>{
console.log(err);
});
}
網絡控制檯顯示正確答案......所以爲什麼不確定? =/
你使用舊的'Http'服務還是新的'HttpClient'?你的'res'對象是怎麼樣的?因爲'res.json'似乎很奇怪。 – cyrix
Http:從'@ angular/http'導入{Http}; - 我認爲是老..其餘的迴應是:{「total」:8,「totalCincoEstrelas」:2,「totalQuatroEstrelas」:3,「totalTresEstrelas」:2,「totalDuasEstrelas」:1,「totalUmaEstrela」:0, 「media」:3.75} –
這個'.map((res)=> res.json)不應該是這樣的:'.map((res)=> res.json())'。注意額外的括號。 – DeborahK