AngularRouter:使用带有参数的loadChildren无法传递参数问题。
创始人
2024-10-29 06:00:59
0次

在Angular中,我们可以使用路由器导航到不同的组件或文件。路由器导航通常将参数传递给组件。loadChildren 是一个在 Angular 路由器中使用的函数,可以将懒加载模块加载到应用程序中,并在该模块中注册组件。

然而,在使用 loadChildren 函数时,无法直接传递参数。这样会导致在接收参数时出现问题。这时候我们需要通过一个针对该问题的修改来解决。

首先,我们可以将懒加载模块的路由制成根路径,如下:

const appRoutes: Routes = [
  { path: '', redirectTo: 'home', pathMatch: 'full' },
  { path: 'home', component: HomeComponent },
  { path: 'about', component: AboutComponent },
  { path: 'users/:id', loadChildren: () => import('./user/user.module').then(m => m.UserModule) },
];

然后我们需要在模块中使用路径路径来接收参数。在模块中,我们使用 forChild 函数来定义路由。如下:

const userRoutes: Routes = [
  {
    path: '',
    component: UserComponent,
    children: [
      { path: '', component: UserListComponent },
      { path: 'add', component: UserAddComponent },
      { path: ':id', component: UserDetailComponent },
    ]
  }
];

@NgModule({
  imports: [RouterModule.forChild(userRoutes)],
  exports: [RouterModule]
})
export class UserRoutingModule { }

接下来我们可以在组件中通过 ActivatedRoute 来获取参数。ActivatedRoute 是 Angular 路由器中的一个服务,用于监控和获取当前路由。

例如,我们可以在 UserDetailComponent 组件中获取参数,如下:

import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';

@Component({
  selector: 'app-user-detail',
  templateUrl: './user-detail.component.html',
  styleUrls: ['./user-detail.component.css']
})
export class UserDetailComponent implements OnInit {
  userId: any;

  constructor(private route: ActivatedRoute) { }

  ngOnInit() {
    this.route.params.subscribe(params => {
      this.userId = params['id'];
    });
  }
}

这样就可以通过 loadChildren 函数和 ActivatedRoute 服务来解决问题了。

相关内容

热门资讯

一分钟揭秘,德扑之星手机透视软... AI 黑科技赛道又上新,这款智能处理工具堪称效率开挂,专门面向短视频创作者打造。它打通脚本撰写、AI...
2025版教程,线下德扑四种作... 2025版教程,线下德扑四种作弊方式,AApoker到底有没有透视挂资料(往昔是有辅助挂)是一款可以...
一分钟揭秘,德州牌型概率,智星... 您好,一分钟揭秘,德州牌型概率,智星菠萝德州软件下载阶段(一贯真的有辅助挂)这款游戏可以开挂的,确实...
一分钟了解,德扑之星辅助开挂教... 您好,德扑之星辅助开挂教程这款游戏可以开挂的,确实是有挂的,需要了解加微【485275054】很多玩...
重大通报!,wepoker透视... 重大通报!,wepoker透视挂安全吗,WePoKer有没有挂吗窍要(固有是真的有辅助器)是一款可以...
推荐一款!,德扑最新透视软件,... 推荐一款!,德扑最新透视软件,wpk能不能开挂方针(切实有透视挂)是一款可以让一直输的玩家,快速成为...
推荐一款,德州软件有没有挂,德... AI 黑科技赛道又上新,这款智能处理工具堪称效率开挂,专门面向短视频创作者打造。它打通脚本撰写、AI...
实测发现,runit德州透视软... 您好,runit德州透视软件辅助挂这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302...
玩家实测,WePOKer辅助,... 您好:WePOKer辅助这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的...
总算了解!,德州小辅助app最... 总算了解!,德州小辅助app最新版本更新内容,微扑克开挂技巧策略(原本是有透视挂);近期一款 AI ...