routerLink для дочерних компонентов, перенаправляющих на страницу, не найденную работает - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь передать UserId одному из компонентов, используя routerLink. и перенаправлен на ниже URL. но маршрут с отображением страницы не найден работает сообщение. http://localhost:4200/admin/distributors/edit/3

также включает компонент в модуле маршрутизации. путь: «распространители / редактирование: идентификатор пользователя», компонент: AddDistributorComponent,

выше, я получаю идентификатор пользователя, но почему он показывает сообщение Страница не найдена.

Пожалуйста, помогите .. Заранее спасибо.

distributors.component.html

<button class="btn btn-info" title="Edit" [routerLink]="['/admin/distributors/edit', usr.UserId]"></button>

admin.routing.module.ts

import { NgModule } from '@angular/core';
    import { Routes, RouterModule } from '@angular/router';
    import { AdminComponent } from './admin/admin.component';
    import { AdminDashboardComponent } from './admin-dashboard/admin-dashboard.component';
    import { DistributorsComponent } from './distributors/distributors.component';
    import { AddDistributorComponent } from './add-distributor/add-distributor.component';
    import { AuthGuard } from '../auth/auth.guard';
    const routes: Routes = [
        {
        path: 'admin',
        component: AdminComponent,
        canActivate: [AuthGuard],
        children: [
          {
          path: '',
          children: [
            { path: 'distributors', component: DistributorsComponent },
            { path: 'distributors/create', component: AddDistributorComponent },
            { path: 'distributors/edit:UserId', component: AddDistributorComponent },
            { path: '', component: AdminDashboardComponent }
          ],
        }
      ]
      }
    ];

    @NgModule({
      imports: [RouterModule.forChild(routes)],
        providers: [],
      exports: [RouterModule]
    })
    export class AdminRoutingModule { }

адд-distributor.component.ts

ngOnInit(){
    const id = this.actroute.snapshot.paramMap.get('UserId');
    }

1 Ответ

0 голосов
/ 03 мая 2019

Я думаю, что у вас есть дополнительные children в admin.routing.module.ts

    import { NgModule } from '@angular/core';
    import { Routes, RouterModule } from '@angular/router';
    import { AdminComponent } from './admin/admin.component';
    import { AdminDashboardComponent } from './admin-dashboard/admin-dashboard.component';
    import { DistributorsComponent } from './distributors/distributors.component';
    import { AddDistributorComponent } from './add-distributor/add-distributor.component';
    import { AuthGuard } from '../auth/auth.guard';
    const routes: Routes = [
        {
        path: 'admin',
        component: AdminComponent,
        canActivate: [AuthGuard],
        children: [
            { path: 'distributors', component: DistributorsComponent },
            { path: 'distributors/create', component: AddDistributorComponent },
            { path: 'distributors/edit/:UserId', component: AddDistributorComponent },
            { path: '', component: AdminDashboardComponent }
        ]
      }
    ];

    @NgModule({
      imports: [RouterModule.forChild(routes)],
        providers: [],
      exports: [RouterModule]
    })
    export class AdminRoutingModule { }

А для получения параметров я обычно использую подписку:

 this.route.params.subscribe((params) => {
        this.paramId = params.UserId;
 });
...