【问题标题】:routerLink for the child components redirecting to Page Not Found works子组件的 routerLink 重定向到 Page Not Found 有效
【发布时间】:2019-09-21 19:28:03
【问题描述】:

我正在尝试使用 routerLink 将 UserId 传递给组件之一。并重定向到以下网址。但显示页面未找到的路线有效消息。 http://localhost:4200/admin/distributors/edit/3

还包括路由模块中的组件。 路径:'distributors/edit:UserId',组件:AddDistributorComponent,

上面我正在获取 UserId,但为什么它显示页面未找到消息。

请帮助..提前致谢。

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 { }

add-distributor.component.ts

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

【问题讨论】:

    标签: angular angular6 angular7 angular-routing


    【解决方案1】:

    我认为您在 admin.routing.module.ts

    中有一个额外的 children
        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;
     });
    

    【讨论】:

    • ufffffff..在这一行中发现错误。它应该是 { path: 'distributors/edit/:UserId', component: AddDistributorComponent },
    猜你喜欢
    • 2020-12-05
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2016-06-27
    • 2021-12-21
    • 2014-07-14
    • 2011-11-09
    相关资源
    最近更新 更多