面试题答案
一键面试- 配置路由:
- 首先在
app - routing.module.ts
中配置路由。假设我们有两个组件ComponentA
和ComponentB
。
import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; import { ComponentA } from './component - a.component'; import { ComponentB } from './component - b.component'; const routes: Routes = [ { path: 'component - a', component: ComponentA }, { path: 'component - b/:param', component: ComponentB } ]; @NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule] }) export class AppRoutingModule {}
- 首先在
- 从ComponentA跳转到ComponentB并传递参数:
- 在
ComponentA
的模板文件(component - a.component.html
)中,使用routerLink
指令来实现跳转并传递参数。
<a [routerLink]="['/component - b', 'example - string']">跳转到ComponentB并传递参数</a>
- 也可以在
ComponentA
的组件类(component - a.component.ts
)中通过编程方式实现跳转:
import { Component } from '@angular/core'; import { Router } from '@angular/router'; @Component({ selector: 'app - component - a', templateUrl: './component - a.component.html', styleUrls: ['./component - a.component.css'] }) export class ComponentA { constructor(private router: Router) {} goToComponentB() { const param = 'example - string'; this.router.navigate(['/component - b', param]); } }
- 在
- 在ComponentB中接收参数:
- 在
ComponentB
的组件类(component - b.component.ts
)中,通过ActivatedRoute
来获取传递的参数。
import { Component, OnInit } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; @Component({ selector: 'app - component - b', templateUrl: './component - b.component.html', styleUrls: ['./component - b.component.css'] }) export class ComponentB implements OnInit { paramValue: string; constructor(private route: ActivatedRoute) {} ngOnInit() { this.route.paramMap.subscribe(params => { this.paramValue = params.get('param'); }); } }
- 然后在
ComponentB
的模板文件(component - b.component.html
)中可以使用这个参数:
<p>接收到的参数值: {{paramValue}}</p>
- 在