如何使数据自动计算?

时间:2019-08-14 15:50:33

标签: angular asynchronous observable angular-services angular-components

我正在构建一个由许多组件组成的应用程序。这些组件中的许多组件都显示需要基于过滤器参数进行更新的列表(ListComponent)。用户可以通过单击链接(在某些组件中)或通过填写过滤器“表单”(HomeComponent中的FilterComponent)来设置过滤器参数。必须在所有页面上看到此过滤选择的结果。

过滤器参数可通过BehaviorSubject(可观察)用于所有组件,并且每个组件都可以获取和设置其值。

在HomeComponent上提交过滤器“表单”(HomeComponent由ListComponent和FilterComponent组成)时,ListComponent不会自动更新。当我更改页面时,所有工作都很好,相应地应用了过滤器(以及当我返回页面时)。

在ListComponent内部(在ngOnInit内部)很有趣:

  selected: Selected; //imported interface
  public items = [];

  ngOnInit() {
    this.itemsService.getFilterParams().subscribe(data => {
      this.selected = data;
  });

    this.itemsService.getFilteredItems
      (this.selected.category, this.selected.price, this.selected.title)
     .subscribe(data => this.items = data); // HTML looks like this {{*ngFor item in items.. and so on..}}
  }

顺便说一句:我将所有共享方法都放在itemsService中,我知道这是错误的,但只是暂时的。 我是Angular的新手,不知道自己在做什么(错误)。我需要任何帮助!

0 个答案:

没有答案