Ionic-angular - маршрутизация не работает должным образом, когда у меня есть несколько вложенных маршрутов

У меня есть две страницы: Items & Users. Страница Inside Items У меня есть дочерние маршруты, добавляйте / редактируйте / удаляйте. На странице Inside Users у меня есть несколько дочерних маршрутов, добавьте / удалите. Таким образом, структура маршрутизации выглядит примерно так, как показано ниже.

app-routing.module.ts

 {
    path: "users",
    loadChildren: "./users/users.module#UsersPageModule",

  },
  {
    path: "items",
    loadChildren: "./items/items.module#ItemsPageModule"
  }

users.module.ts

{
    path: "",
    component: UsersPage,
    children: [
      {
        path: "add",
        component: EditUserComponent
      },
      {
        path: "",
        component: UserListComponent,
        pathMatch: "full"
      }
    ]
  }

items.module.ts

{
    path: "",
    component: ItemsPage,
    children: [
      {
        path: "additem",
        component: ItemDetailsComponent
      },
      {
        path: "",
        component: ItemListComponent,
        pathMatch: "full"
      }
    ]
  }

Проблема: если после загрузки приложения я переключаюсь между путями на одной странице, все работает нормально, но как только я посещаю другую страницу и снова возвращаюсь на предыдущую страницу и пытаюсь перемещаться, это не работает.

Например. Сначала я захожу в / items, затем / items / снова добавляю / items /. Здесь все работает. Проблема начинается, когда я захожу в / users и снова возвращаюсь в / items. Итак, на этом этапе страница элемента загружается нормально, которая привязана к / items. Но если я попытаюсь перейти к / items / add. В пользовательском интерфейсе вроде ничего не происходит.

Я включил трассировку маршрутов и обнаружил, что он показывает Router Event: NavigationEnd, есть ли подсказка, почему это происходит?

Вот ссылка на образец проекта github: https://github.com/Dhananjay-JP/ionic-routing-issue.git.


person Dhananjay    schedule 03.10.2019    source источник


Ответы (1)


Можете ли вы показать нам, как вы пишете навигационные ссылки в свой html файл?

Может быть так.

<a [routerLink]="['users']">users</a>
<a [routerLink]="['items']">items</a>

person Manjiri K    schedule 03.10.2019
comment
Я пробовал как с помощью routerLink, так и с помощью router. В настоящее время использую this.router.navigate(["add"], { relativeTo: this.route });, также пробовал давать. абсолютный путь this.router.navigateByUrl("/items/additem"); - person Dhananjay; 03.10.2019