Нативная и угловая маршрутизация - ошибка сегмента URL - PullRequest
0 голосов
/ 06 июня 2019

в моем приложении Nativescript / Angular у меня есть основной модуль UsersModule; он содержит два модуля: UsersListModule и ManageUserModule. Это структура: - пользователи

- users
   - manageUsers
     * manageUsers-routing.module.ts
     * manageUsers.component.ts
     * manageUsers.component.html
     * manageUsers.module.ts
   - usersList
     * usersList-routing.module.ts
     * usersList.component.ts
     * usersList.component.html
     * usersList.module.ts
 * users-routing.module.ts
 * users-routing.module.html
 * users.component.ts
 * users.module.ts

Это приложение маршрутизации:

const routes: Routes = [
{ path: "", redirectTo: "/login", pathMatch: "full" },
{ path: "login", component: LoginComponent },
{ path: "users", loadChildren: "~/app/users/users.module#UsersModule", canActivate: [AuthGuard] }
];

Это UsersRoutingModule:

const routes: Routes = [
{
    path: "default", component: UsersComponent, canActivate: [AuthGuard], children: [
        { path: "usersList", component: NSEmptyOutletComponent, loadChildren: "~/app/users/usersList/usersList.module#UsersListModule", outlet: "usersList" },
        { path: "manageUsers", component: NSEmptyOutletComponent, loadChildren: "~/app/users/manageUsers/manageUsers.module#ManageUsersModule", outlet: "manageUsers" },
    ]
}
];

Это маршрутизация UsersList:

    const routes: Routes = [
    { path: "", redirectTo: "usersList" },
    { path: "usersList", component: UsersListComponent }
];

Это маршрутизация MangeUsers:

    const routes: Routes = [
    { path: "", redirectTo: "newUser" },
    { path: 'newUser', component: ManageUserComponent },
    { path: 'editUser/:userId', component: ManageUserComponent }
];

Это users.component.html:

.....
<page-router-outlet name="usersList"></page-router-outlet>
<page-router-outlet name="manageUsers"></page-router-outlet>
.....

Проблема в том, что angular не может найти URL-адрес сегмента и не может перенаправить меня, когда я нахожусь в списке пользователей и хочу перейти к редактированию выбранного пользователя. В UsersListComponent у меня есть эта функция:

  goToEdit(data) {
    let urlTree = this.router.createUrlTree(['../editUser', data.userId], {
        relativeTo: this.activeRoute
    });
    this.routerExtensions.navigateByUrl(urlTree);
};

, но если я пытаюсь перейти к редактированию, он возвращает эту ошибку:

ОШИБКА Ошибка: Uncaught (в обещании): Ошибка: не удается сопоставить ни один маршрут. Сегмент URL: «пользователи / по умолчанию»

И у меня есть похожая проблема в sidenav на users.component, где я пытаюсь:

    open() {
    this.closeSideDrawer();
    const urlTree = this.router.createUrlTree(['/users/newUser'], {
        relativeTo: this.activeRoute
    });
    this.routerExtensions.navigateByUrl(urlTree);
}

но если я нажму, он не будет перенаправлен, он просто закроет боковую панель и ничего не произойдет

...