【发布时间】:2020-05-29 12:28:21
【问题描述】:
有一个来自 API 的产品列表。产品是分页的,用户可以切换到另一个页面。简化的模板如下所示:
<ul>
<li *ngFor="let product of products$ | async">{{ product.name }}</li>
</ul>
<button type="button" (click)="gotoPage(1)">1</button>
<button type="button" (click)="gotoPage(2)">2</button>
组件看起来像这样:
export class ProductsComponent implements OnInit {
products$: Observable<Product[]>;
constructor(
private service: ProductService
) { }
ngOnInit() {
this.products$ = this.service.getAll({page: 1});
}
gotoPage(page: number): void {
this.products$ = this.service.getAll({page: page});
}
}
我的问题是: 这是更新 Obersavble 的正确方法吗?或者这会产生内存泄漏?
注意:URL 不会更改,并且组件不应在分页更改时重新加载。
【问题讨论】:
标签: angular asynchronous rxjs observable angular9