У меня есть приложение Angular, размещенное в корзине AWS S3, назовем его myBucket .Насколько я понимаю, это означает, что я могу получить доступ к приложению, используя только URL http:\\myBucket
.Если я пытаюсь что-то наподобие http:\\myBucket\myPage
, это не получается.
Мое приложение использует router-outlet
для навигации по страницам.
Чтобы преодолеть тот факт, что я не могу использовать URL-адрес, такой как http:\\myBucket\myPage
Я хотел бы передать параметр в URL, чтобы я мог указать, какой из компонентов будет первым в router-outlet
.Например, http:\\myBucket\?nextPage='myPage'
будет загружать маршрут с пометкой «myPage» в конфигурации router
.
Для этого в AppComponent
я написал следующую логику
constructor(
private router: Router,
private activatedRoute: ActivatedRoute,
) {}
ngOnInit() {
this.activatedRoute.queryParams
.subscribe(
params => {
console.log('params', params);
if (params.nextPage) {
this.router.navigate([params.nextPage]);
} else {
this.router.navigate(['defaultPage']);
}
}
);
}
К сожалению, если я так делаю, я всегда заканчиваю страницу по умолчанию, так как activatedRoute.queryParams
сначала выдает всегда пустой объект, что приводит меня к defaultPage
.Когда я перехожу на defaultPage
, это слишком поздно, чтобы подвести мое приложение к тому, что он содержит в параметре nextPage
.
Можно ли найти способ загрузки страницы / компонента, указанного в параметре URL-запроса