我正在构建一个由许多组件组成的应用程序。这些组件中的许多组件都显示需要基于过滤器参数进行更新的列表(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的新手,不知道自己在做什么(错误)。我需要任何帮助!