我在为子页面加载数据时遇到问题,如果我点击管理产品然后更新产品,它会正常工作,但如果我刷新更新产品则会丢失数据。
我有一个着陆页,例如:Dashboard是一个侧边栏。 例如,当点击产品时,它会加载管理产品页面。
在manage-products.component.ts
我得到了这样的产品
this.products = this.productsService.products;
this.productsService.GetProducts().subscribe();
我的products.service.ts
public GetProducts(): Observable<any> {
return this.httpClient.get(this.baseUrl + '/product').map(res => {
this._productSource.next(res as Product[]);
});
}
点击产品时,它会路由到:product/update/1
在product-update.component.ts
我通过过滤observable来过滤此处的数据。如果我刷新此页面,则一切都未定义。我应该通过点击API来获取产品而不是订阅现有的observable,如果是这样,我应该创建一个新的API路由,通过productId获取产品数据或者全部获取并过滤它们吗?
欣赏任何建议。感谢
答案 0 :(得分:0)
通过阅读问题,不清楚product-update.component.ts
如何获取需要呈现的数据。我的猜测是从父组件的@input()
获取它。
如果是这样,它就不知道当你推送刷新时它需要自我更新。
所以我猜你需要像子组件一样的服务
ngOnInit() {
this.getSalesItems();
}
getSalesItems(): void {
this.apiService.getSalesItems().subscribe(
value => {
this.saleItems = value;
},
error => {
console.log("Error get req = ", error);
}
);