Маршрут продолжает перенаправляться - PullRequest
0 голосов
/ 10 апреля 2020

Я создаю простое приложение для создания фотогалереи. Когда пользователь выбирает изображение, оно должно отображать выбранное изображение. Это выполняется с помощью маршрута к другому компоненту, поэтому, когда пользователь нажимает на изображение, которое он хочет просмотреть, выбранное изображение затем отображается само по себе через другой компонент. У меня проблема в том, что когда я выбираю изображение в пользовательском интерфейсе, URL-адрес корректно меняется на localhost: 4200 / gallery / 1 (1 представляет идентификатор изображения), но только на миллисекунду. Затем он перенаправляет обратно на localhost: 4200 / gallery.

Я дважды проверил мои маршруты и, насколько я могу судить, они настроены правильно. Я вложил маршрут 'image-full-view' в дочерний маршрут галереи.

Это соответствующие маршруты из моего модуля маршрутизации:

const routes: Routes = [
  { path: '', redirectTo: '/gallery', pathMatch: 'full' },
  { path: 'gallery', component: GalleryComponent, children: [
    { path: ':id', component: ImageFullViewComponent},
  ]}, 

Это галерея html файл, в котором отображаются все изображения (здесь в качестве выходного маршрутизатора должен использоваться компонент 'image-full-view' ниже):

<ul class="container">
    <li class="item-list-container"><app-image-item
    class="image-item"
    *ngFor="let imageEl of images"
    [image]="imageEl"
    (click)="onImageSelect(imageEl.id)"
    ></app-image-item>
    </li>
</ul>
<router-outlet></router-outlet>

Это метод onImageSelect сверху, который хранится в файл галереи ts:

onImageSelect(id: number) {
    this.router.navigate(['/gallery', id])
    console.log(id);
  }

Это файл 'image-full-view' html, в котором должно отображаться выбранное изображение:

<div class="container">
    <img class="image-full-view" [src]="selectedImage.imagePath" alt="Man Praying">
    <p>{{ selectedImage.name }}</p>
</div>

Наконец, это ' Файл полного просмотра изображения, где хранится selectedImage:

selectedImage: Image;

  ngOnInit() {
    const id = this.route.snapshot.paramMap['id'];
    this.selectedImage = this.gallerService.getImage(id);
  }

Извините, я знаю, что это много кода, но я включил только то, что мне показалось уместным. Надеюсь, кто-то может помочь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...