【发布时间】:2017-06-01 15:55:52
【问题描述】:
单击加载更多后,我正在尝试更新 Observable 数组,但这会导致对 API 的多次调用。
这是我的html:
<app-productlistother *ngFor="let item of favs$ | async" [item]="item"></app-productlistother>
<a (click)="loadMore()">Load More</a>
组件:
ngOnInit() {
this.favs$ = this._favoriteService.getFavorites(this.pageNum);
}
private loadMore() {
this.pageNum = this.pageNum + 1;
this.favs$ = this.favs$.merge(this._favoriteService.getFavorites(this.pageNum));
}
和服务:
getFavorites(page): Observable<Response> {
return this._http.get(environment.baseUrl + 'favorite?page=' + page)
.map((result: Response) => result.json().data);
}
我该如何解决这个问题?在对getFavorites(page) 的每个新请求中,我需要将新结果推送到数组底部...
【问题讨论】:
-
您需要在您的服务中使用 observable,并且需要订阅组件中的 observable,一旦触发加载更多,数据将被添加到 observable,并且组件将列出任何更改,然后更新自己
-
你能给我举个例子吗?
-
@Vladmir 举了一个例子希望对你有帮助
-
查看您的 HTML,您正在重复
并将新项目作为输入传递给子组件。 HTML 是什么样的?我有一种感觉,你正在异步每个项目,而不是异步一次并重复异步的项目。 -
在
<app-productlistother>我只是这样显示{{item.name}}
标签: javascript angular rxjs observable