2
有一次,我成功地使用observables在我的Angular 2應用程序中對數組中的對象進行迭代。在我的客戶服務檔案我有這樣的:在對象中定位數組 - 角度2中的可觀察對象
getByCategory(category: string) {
const q = encodeURIComponent(category);
return this.http.get
(`https://api.someurl.com/${this.ver}/clients/category/${q}?apikey=${this.key}`)
.map((response: Response) => response.json())
.catch(this.stageErrorsHandler);
}
stageErrorsHandler(error: Response) {
console.error(error);
return Observable.throw(error.json().error || 'Server error');
}
我當時我訂閱我的組件的ngOnInit生命週期掛鉤,像這樣:
ngOnInit() {
this.clientService.getByCategory('consulting')
.subscribe(resRecordsData => this.records = resRecordsData,
responseRecordsError => this.errorMsg = responseRecordsError);
}
在組件中,我也開始記錄是空數組:
records = [];
然後在我看來,我遍歷數組的記錄是這樣的:
<tr *ngFor="let record of records">
現在我們在api/server上的數據配置已經改變了。我曾經把目標定在數組,即是這樣的:
[
{
"id": "someid",
}
]
...我需要改變這個到現在針對所謂的「數據」的陣列,位於內的對象。它看起來像這樣:
{
"count": 1000,
"data": [
{
"id": "someid",
}
]
}
簡單的問題,我很難過:我如何在這樣的對象內定位一個數組?我需要在對象內部定位數組,因爲這是* ngFor需要的,以便能夠迭代。
嘗試讓records.data記錄?或初始化記錄:this.records = resRecordsData.data? – floor
好主意。讓我嘗試一下。 – Muirik
讓我知道它是否工作 – floor