我在理解觀察者/訂閱者模型和循環返回時遇到了一些問題。遍歷訂閱者
所以我有一個雞尾酒組件抓住一系列雞尾酒對象。
的cocktail.service.ts核心:
constructor(private _http: Http) {
}
// Returns an array of cocktail objects, using .map to json them
getCocktails() {
return this._http.get(this._geturl)
.map(res => res.json());
}
和cocktail.component.ts相關位:
// Calls the cocktail service and gets the json array
constructor(private _cocktailService: CocktailService) {
this.cocktails = _cocktailService.getCocktails();
}
現在我明白了,我可以遍歷cocktails
使用:
<li *ngFor="let cocktail of cocktails | async">
但我只是想知道我會怎麼做,通過使用訂閱觀察者方法:
constructor(private _cocktailService: CocktailService) {
this.cocktails = _cocktailService.getCocktails().subscribe(
res => this.cocktails = res
);
}
現在我不能使用異步管道,因爲本質上,它的認購對我來說,但如果我使用:
<li *ngFor="let cocktail of cocktails">
我剛剛得到一個錯誤。我如何訂閱,並循環返回?
我得到的錯誤是:
core.umd.js:3004 EXCEPTION:錯誤在app/cocktail.template.html:3:5 引起的:無法找到一個不同的支持對象'object object]' type'object'。 NgFor僅支持綁定到Iterables,如 陣列。
你得到了什麼錯誤?添加錯誤可以幫助我們更好地理解! – Sriram
剛剛添加 - 謝謝 –
爲該json結果集創建一個接口並使用它在服務中使用它返回this.http.get(dataUrl) .map(response => response.json()as IFacility []) – Sriram