面试题答案
一键面试配置带参数的路由
- 在
app-routing.module.ts
中定义路由配置:const routes: Routes = [ { path: 'user/:id', // 这里 :id 是参数占位符 component: UserDetailComponent } ];
- 导入并配置路由模块:
@NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule] }) export class AppRoutingModule {}
在目标组件中获取参数
- 在
UserDetailComponent
组件中注入ActivatedRoute
:import { Component } 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 { userId: string; constructor(private route: ActivatedRoute) { // 使用 snapshot 获取参数,适用于非动态路由 this.userId = this.route.snapshot.paramMap.get('id'); // 若路由参数可能会动态变化,使用 Observable 来订阅参数变化 this.route.paramMap.subscribe(params => { this.userId = params.get('id'); }); } }