2017-03-07 52 views
0

使用可觀察我有分頁在我的角2的應用程序的工作,但我遇到了一個問題,我得到一個錯誤回覆:異步管:異步管道錯誤而在角2應用

參數無效「 '管道‘AsyncPipe’

在研究,我已經做了回覆:這個錯誤,它通常具有與異步管道預計可觀察到的事實做。這讓我感到困惑,因爲我正在使用可觀測值,所以我不確定問題是什麼。

首先,這裏是我的相關視圖代碼:

<tr *ngFor="let record of records | async | paginate: { id: 'stream', itemsPerPage: 15, currentPage: page, totalItems: total }"> 

此組件使用的是另一種組分輸入(),像這樣:

@Input() records = []; 

這裏與其他部件的「記錄」 ,這是我訂閱OnInit時可以觀察到的:

ngOnInit() { 
    this.streamService.getBySection('section1') 
     .subscribe(resRecordsData => this.records = resRecordsData, 
     responseRecordsError => this.errorMsg = responseRecordsError); 
} 

我在這裏錯過了什麼?我是否需要將其明確地聲明爲類型可觀察的地方?

+0

大概你的意思是解決observable,paginate *然後*遍歷結果?在這種情況下,'let記錄(記錄| async | paginate:{...})「,但看起來observable已經被* .subscribe解析了,* not * – jonrsharpe

+0

與我已有的有什麼不同? – Muirik

+0

圓括號闡明瞭操作的順序,有時可能會出錯。但是,您遇到的問題是'records' *不會顯示是一個可觀察的* – jonrsharpe

回答

4

異步管道期望可觀察,而不是解析數據。

ngOnInit() { 
    this.records = this.streamService.getByStage('section1'); 
} 
+0

謝謝,所以我想我的想法是,在這種情況下,「異步」管道是多餘的呢?如果我已經返回了可觀察結果,那麼無需使用它吧? – Muirik

+0

這是正確的。如果你沒有綁定到Observable,而只是一個普通的對象,你可以刪除異步。 –

+0

好的,有意義,謝謝。 – Muirik