1
無限循環我有這個代碼無限循環: 模板:與存儲和HTTP與ngFor
<ng-container *ngFor="let row of service.dataLoadAsync() | async">
服務:
dataLoadAsync(filters: FinishedCallsFilter = {}): Observable<FinishedCall[]> {
return this.httpFinishedCallsObservable(Object.assign({limit: this.limit}, {})).flatMap(response => {
this.store.dispatch(new ReplaceMany(response.items))
return this.store
})
}
我也試過這個功能的實現:
dataLoadAsync(filters: FinishedCallsFilter = {}): Observable<FinishedCall[]> {
this.httpFinishedCallsObservable(Object.assign({limit: this.limit}, {}))
.subscribe(response => this.store.dispatch(new ReplaceMany(response.items)))
return this.store
}
private httpFinishedCallsObservable(params: { limit: number, tag ?: string }) {
return this.http.post(this.apiUrl, params)
.map((json) => this.parseHttp(json))
.do(response => this.tagStore.dispatch(new UpdateTag(response.tag)))
}
所以,這個問題。沒有http請求,evferything是好的。但後來我嘗試下載數據並更新存儲,在循環中函數調用了很多次。 如何修復代碼?我想使用存儲緩存
謝謝!這工作! – x1site
很高興聽到:) –
即使使用ChangeDetectionStrategy.OnPush(認爲這會阻止?),並將函數綁定到返回'pluck'ed'http.get'響應的模板,也會有同樣的問題。訂閱http響應並將其分配給屬性似乎可行。 – Manolis