使用不同路线的观察点

时间:2018-05-19 08:29:42

标签: angular typescript

我在为子页面加载数据时遇到问题,如果我点击管理产品然后更新产品,它会正常工作,但如果我刷新更新产品则会丢失数据。

我有一个着陆页,例如: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/1product-update.component.ts

我通过过滤observable来过滤此处的数据。如果我刷新此页面,则一切都未定义。我应该通过点击API来获取产品而不是订阅现有的observable,如果是这样,我应该创建一个新的API路由,通过productId获取产品数据或者全部获取并过滤它们吗?

欣赏任何建议。感谢

1 个答案:

答案 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);
     }
  );