Поскольку ActivatedRoute
может использоваться повторно, ActivatedRouteSnapshot
является неизменяемым объект, представляющий определенную версию ActivatedRoute
. Он предоставляет все те же свойства, что и ActivatedRoute
, как простые значения, а ActivatedRoute
предоставляет их как наблюдаемые.
Вот комментарий к реализации:
export class ActivatedRoute {
/** The current snapshot of this route */
snapshot: ActivatedRouteSnapshot;
Если маршрутизатор повторно использует компонент и не создает новый активированный маршрут, у вас будет две версии ActivatedRouteSnapshot
для одного и того же ActivatedRoute
. Предположим, у вас есть следующая конфигурация маршрутизации:
path: /segment1/:id,
component: AComponent
Теперь вы переходите к:
/segment1/1
У вас будет параметр в activatedRoute.snapshot.params.id
как 1
.
Теперь вы переходите к:
/segment1/2
У вас будет параметр в activatedRoute.snapshot.params.id
как 2
.
Вы можете увидеть это, реализовав следующее:
export class AComponent {
constructor(r: ActivatedRoute) {
r.url.subscribe((u) => {
console.log(r.snapshot.params.id);
});
person
Max Koretskyi
schedule
05.09.2017