angular6-Routing

本文详细介绍了如何在Angular 6中设置路由,包括使用Angular CLI生成AppRoutingModule,导入RouterModule和Router,配置路由,添加RouterOutlet,实现路由传参,获取路由参数以及返回父页面的方法。通过这些步骤,读者可以全面了解Angular 6的路由操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.使用angular CLI生成AppRoutingModule

ng generate module app-routing --flat --module=app

–flat将文件放在src / app而不是新建的文件夹中。
–module = app告诉CLI将其注册到AppModule的imports数组中。
生成的文件如下图所示:

import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';

@NgModule({
  imports: [
    CommonModule
  ],
  declarations: []
})
export class AppRoutingModule { }

通常不在路由模块中声明组件,因此可以删除@ NgModule.declarations数组,并删除CommonModule引用。

2.导入RouterModule和Router

我们将在RouterModule中配置路由器的路由,因此从@ angular /路由器库中导入RouterModule和Router。
在@ NgModule中添加一个带有RouterModule的@ NgModule.exports数组。 导出RouterModule使路由器指令用于需要它们的AppModule组件。

代码如下:

import { NgModule } from '@angular/core';

import { Routes, RouterModule } from '@angular/router';

@NgModule({
  imports: [],
  exports: [RouterModule]
})
export class AppRoutingModule { }

Angular Route有两个属性:

path:与浏览器地址栏中的URL匹配的字符串。
component:导航到此路由时路由器应创建的组件。
例如:当URL类似于localhost:4200 / hero时,页面就会导航到HeroComponent。

3.在@ NgModule.imports中配置路由

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { HeroComponent }   from './hero/hero.component';

const routes: Routes = [
  { path: 'hero', component: HeroComponent }
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }

4.添加RouterOutlet

在app.component.html中添加

<router-outlet></router-outlet>

<router-outlet>是告诉路由器在哪里显示路由视图

5.添加导航链接routerLink

app.component.html

<nav>
  <a routerLink="/hero">Hero</a>
</nav>

<router-outlet></router-outlet>

6.routerLinkActive设置默认选中路由

<nav>
  <span routerLink="/hero" routerLinkActive="active">Hero</span>
  <span routerLink="/header" routerLinkActive="active">Header</span>
</nav>
.active{
    color:red;
}

7.添加默认路由

app-routing.module.ts

const routes: Routes = [
  { path: '', redirectTo: '/hero', pathMatch: 'full' },
  { path: 'hero', component: HeroComponent }
];

8.路由传参

app-routing.module.ts中

import { DetailComponent} from './detail/detail.component'
const routes: Routes = [
	 ...
  { path: 'test/:id', component: DetailComponent },
];
1.routerLink跳转传参
<span routerLink="/test/{{id}}" routerLinkActive="active">跳转传参</span>
<span [routerLink]="[ '/test/',id]" routerLinkActive="active">跳转传参</span>
2.JS跳转传参
<span (click)="goDetail(id)">test</span>
import { Router, ActivatedRoute } from '@angular/router'
 constructor(
    private route: ActivatedRoute,
    private router: Router
  ) {}
  goDetail(id): void {
    this.router.navigate(['/test', id]);
  }

9.获取路由参数

import { ActivatedRoute } from '@angular/router';

constructor(private ActivatedRoute:ActivatedRoute) { }

ngOnInit() {
   console.log(this.ActivatedRoute.snapshot.paramMap)
 }

10.返回当前页面的父页面

<button (click)="goBack()">返回</button>
import { Location } from '@angular/common';
constructor(
  private location: Location
) {}
goBack(): void {
  this.location.back();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值