Angular使用router路由,做页面跳转,传值
1: 添加路由模块,创建三个组件模块,首页 我的 详情页
ng generate module app-routing --flat --module=app//创建路由模块ng generate component userng generate component dashboardng generate component userDetail
2: 路由 src\app\app-routing.module.ts
import {NgModule} from '@angular/core';import {RouterModule, Routes} from "@angular/router";import {UserDetailComponent} from "./user-detail/user-detail.component";import {UserComponent} from "./user/user.component";import {DashboardComponent} from "./dashboard/dashboard.component";const routes: Routes = [{path:'',redirectTo:'/dashboard',pathMatch:'full'},{path: 'users', component: UserComponent},{path: 'userDetail', component: UserDetailComponent},{path: 'dashboard', component: DashboardComponent}];@NgModule({imports: [RouterModule.forRoot(routes)],exports: [RouterModule]})export class AppRoutingModule {}
3:主页布局 src\app\app.component.html
<h1>主页启动页</h1><nav><a routerLink="/dashboard">Dashboard</a><a routerLink="/users">Users</a></nav><router-outlet></router-outlet>
4: 我的模块
4.1 我的 功能 src\app\user\user.component.ts
import { Component, OnInit } from '@angular/core';import {NavigationExtras,Router} from "@angular/router";@Component({selector: 'app-user',templateUrl: './user.component.html',styleUrls: ['./user.component.css']})export class UserComponent implements OnInit {name:string ='userName';constructor(private router:Router) { }ngOnInit(): void {}getClick(){let navigationExtras:NavigationExtras = {queryParams:{'name':this.name}}this.router.navigate(['userDetail'],navigationExtras).then((r: any) => console.log(r))}}
4.2 我的 布局 src\app\user\user.component.html
<h1>我的fragment</h1><h1 style="background: brown" (click)="getClick()">请点击我,跳转到用户信息{{name}}</h1>
5: 首页模块
5.1 首页 功能 src\app\dashboard\dashboard.component.ts
import { Component, OnInit } from '@angular/core';import {NavigationExtras,Router} from "@angular/router";@Component({selector: 'app-dashboard',templateUrl: './dashboard.component.html',styleUrls: ['./dashboard.component.css']})export class DashboardComponent implements OnInit {name:string='dashboardName';constructor(private router:Router) { }ngOnInit(): void {}getClick(){let navigationExtras:NavigationExtras = {queryParams:{'name':this.name}}this.router.navigate(['userDetail'],navigationExtras).then((r: any) => console.log(r))}}
5.2 首页 布局 src\app\dashboard\dashboard.component.html
<h1>首页fragment</h1><h1 style="background: green" (click)="getClick()">请点击我,跳转到数据列表{{name}}</h1>
6: 详情模块
6.1 详情 功能 src\app\user-detail\user-detail.component.ts
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 {name:string | undefined;constructor(private route: ActivatedRoute) {this.route.queryParams.subscribe((r: any) => {this.name = r.valueOf().name;})}ngOnInit(): void {}}
6.2 详情 布局 src\app\user-detail\user-detail.component.html
<h1>详情页fragment</h1><h1 style="background: orange">详情页数据{{name}}</h1>
