在我的应用程序中,我有多个参数的路线,例如
http://localhost:3000/department/6/employee/45/sales?from=20160921&to=20160928
我如何最好地评估这些参数?我可以订阅params
和queryParams
的ActivatedRoute
,
this.route.params.subscribe(params => ...load data for params);
this.route.queryParams.subscribe(queryParams=> ...load data for queryParams);
但是,这当然会触发两次加载。另外,我总是需要这两条信息,例如sales
和from
/to
来自上面的例子。
于是上面的代码就变成了
this.route.params.subscribe(params => {
let queryParams = this.route.snapshot.queryParams;
...load data for params/queryParams
}
this.route.queryParams.subscribe(queryParams => {
let params = this.route.snapshot.params;
...load data for params/queryParams
}
而且我还没有解决触发加载两次的问题。
更糟糕的是,我还需要弄清楚我需要升多少级ActivatedRoute
,所以看到这并不罕见
this.route.parent.parent.parent.params.subscribe(...)
啊。无论如何,对于延迟加载的组件,这都会崩溃。无论如何,为了检索少数路由参数,需要大量的样板代码。
我做错了吗?有推荐的方法吗?