В моем приложении у меня есть маршруты с несколькими параметрами, например.Угловой 2 маршрутизатор, оценивающий несколько параметров маршрута
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(...)
тьфу. И это все равно ломается для ленивого загруженного компонента. В любом случае, очень много шаблонов кода, чтобы получить несколько параметров маршрута.
Я делаю это неправильно? Есть ли рекомендуемый способ обойти это?