所以我有一个应用程序,您可以在几个要显示数据的区域之间进行选择。在这些区域的复选框上方,我添加了一个主复选框" AllRegions"哪个obv。选择/取消选中所有其他复选框。 这工作正常,参数被发布到网址和所有这些。
我唯一的问题是当我选中/取消选中" AllRegions"复选框我的组件不会对参数更改的订阅做出反应。它取消选中单个区域时有效,但不适用于此" AllRegions"即使我称之为相同的功能。
组件:
ngOnInit() {
this.route.queryParams.subscribe(params => {
this.loadRegionData();
})
}
单击复选框时会调用此代码。
this.router.navigateByUrl(this.router.createUrlTree([url], { queryParams: { regions: regionParameters } }));
为什么我在浏览导出时不会触发ngOnInit中的订阅?
答案 0 :(得分:1)
如果getSelectedRegions返回一个Observable,它将不会被触发,因为你没有订阅它(内部可观察)。我建议你重构以下内容(假设路由的类型为 ActivatedRoute ):
ngOnInit() {
this.route.queryParams
.switchMap(params => this.regionsService.getSelectedRegions())
.subscribe(
//handle *data* and *error*
);
}