Навигация по маршрутизатору приводит к исчезновению информации

Итак, у меня есть <p-table> на странице, где отображаются «пользователи», их полные имена, статусы и кнопки для изменения статусов.

У меня есть три кнопки: «Принять», «Отклонить» и «Неоднозначно». Каждая из этих кнопок имеет функции, которые выглядят следующим образом:

onAcceptUser(user: UserModel) {
    const data = Utils.cloneObject(user, UserModel);

    data.status = UserStatusEnum.Accept;

    this.userService.userStatusUpdate(data).subscribe(c => {
      user.status = data.status
    });
}

При нажатии на строку отображается информация для соответствующего пользователя (она отображается на той же странице с другой стороны таблицы), и для этого я использую router.navigate() (маршрутизатор вводится).

onSelectUser(event) {
    const user = event.data.user;

    let url = ['user-reports/user-list', this.userListId, 'user', user.userId];

    this.router.navigate(url);
}

Проблема:

Когда я меняю статус своего пользователя, могут произойти две вещи.

  1. Все произойдет, как и планировалось.
  2. Все произойдет по плану, но визуально вся информация о пользователе исчезнет.

Когда возникает второй вариант, для меня все становится размытым:

  • Если я затем выберу другого пользователя, будет отображаться последний выбранный, и я получаю сообщение об ошибке: Навигация по маршрутизатору приводит к исчезновению информации

  • То же самое происходит, когда я просто Выбрать, затем отменить выбор строку и после этого я выбираю строку разное.

Я не знаю, что происходит, в некоторых других ответах говорилось, что что-то не так с маршрутизацией, но я думаю, что в моем случае все в порядке:

{
    path: 'user-list/:listid',
    component: ViewUserListComponent,
    children: [
      {
        path: 'user/:id',
        component: UserViewEditComponent
      }
    ]
 }

Вопросы:

Почему возникает эта ошибка?!

Что я могу сделать?!

Вы добавили <router-outlet></router-outlet> в шаблон ViewUserListComponent?

Julian Liu 27.05.2019 18:04

@пиндев точно.

magicalKhachapuri 28.05.2019 08:18
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
1
2
214
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Не могли бы вы добавить html, чтобы я мог видеть всю картину?

Ответ принят как подходящий

Что исправило мою проблему, спросите вы?!

Я добавил событие (onRowUnselect) в <p-table>, где очистил параметры URL и вуаля.

Другие вопросы по теме