Вы можете сделать это, установив state
на маршрутизаторе.
Пример: (this.router
is Router
)
// In TypeScript
this.router.navigate(['/tab1'], {state: {something: 1}});
или
// In HTML
<a [routerLink]=”/tab1” [state]=”{ something: 1}”>Go to B</a>
Затем в целевом компоненте вы можете извлечь значение из state
следующим образом:
this.router.getCurrentNavigation().extras.state.something
Возможно, вам придется подписаться на события маршрутизатора и дождаться NavigationEnd
, если вы его найдете. слишком шумно.
Другой вариант - просто взять его с history.state.data
. Я бы сказал, что это не «путь angular», но он работает.
Другие варианты:
- использование NavigationResolver
- Реализация Конечный автомат типа NgRx
- Создайте службу и используйте
EventEmitter
для широковещательной передачи id
любым другим компонентам, которые могут захотеть узнать об этом.