angular路由跳转及传值

路由拦截

匹配不到路由的时候加载的组件或跳转的路由

  import {NotFoundComponent} from './not-found.component';
  
  {
    	path: '**', // 任意路由
     	component: NotFoundComponent , // 加载的组件
     	/* redirectTo:'NotFoundComponent' // 跳转的路由 */
   }

路由懒加载

新建一个模块,并新增一个路由配置文件,在路由配置文件中设置该模块子组件的路由拦截
在这里插入图片描述
在根路由app-routing.module.ts中加载自定义的模块

     {
        path: 'help-management',
        //路由懒加载,HelpManagementModule:模块类名
        loadChildren: './help-management/help-management.module#HelpManagementModule'
      },

get传值链接跳转

组件1的html进行跳转并传值:

<a [routerLink]="['/路由地址']",[queryParams]="{'键名':'值'}">链接跳转</a>

组件2的ts中接收值:

 import {ActivatedRoute} from '@angular/router'
 
 constructor(public route:ActivatedRoute){}
 ngOnInit(){
    this.route.queryParams.subscribe((data)=>{
      // data:传递的对象
    })
  }

动态路由传值链接跳转

在app-routing.module.ts中设置路由拦截

{path: '路由地址/:aid', component: HomeComponent}

组件1的html中进行跳转并传值:

<a [routerLink]="['/路由地址/','欲传递的id值']">链接跳转</a>

组件2的ts中接收值:

 import {ActivatedRoute} from '@angular/router'
 
 constructor(public route:ActivatedRoute){}
 ngOnInit(){
    this.route.params.subscribe((data)=>{
      // data:传递的对象
    })
  }

get传值js跳转

组件1的html中设置点击事件:

<button (click)="toOtherPage()">js跳转</button>

组件2的ts中接收值:

 import {Router,NavigationExtras} from '@angular/router'
 
 constructor(public router:Router){}
 toOtherPage(){
    let queryParams:NavigationExtras={
        queryParams:{ '键名':'值' }
    }
    //路由跳转
    this.router.navigate(['/路由地址'],queryParams) 
  }

动态路由传值js跳转

在app-routing.module.ts中设置路由拦截

{path: '路由地址/:aid', component: HomeComponent},

组件1的html中设置点击事件:

<button (click)="toOtherPage()">js跳转</button>

组件2的ts中进行跳转并传值:

  import {Router} from '@angular/router'
    
  constructor(public router:Router){}
  toOtherPage(){
    //路由跳转
    this.router.navigate(['/路由地址/','欲传递的id值']) 
  }
在TypeScript (TS) 和 Angular 中,路由跳转通常通过`RouterModule`模块提供的服务和指令来完成。以下是一个简单的步骤概述: 1. **安装依赖**:首先,确保你在Angular项目中已经安装了`@angular/router`模块,如果还没有,可以运行`ng add @angular/router`。 2. **配置路由模块**:在`app-routing.module.ts`文件中,你需要导入`RouterModule`, `Routes`以及需要的组件。然后定义你的路由规则,如这样: ```typescript import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; import { HomeComponent } from './home/home.component'; import { AboutComponent } from './about/about.component'; const routes: Routes = [ { path: '', component: HomeComponent }, // 主页 { path: 'about', component: AboutComponent } // 关于页面 ]; @NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule] }) export class AppRoutingModule {} ``` 3. **导航到特定路线**:在组件的HTML模板中,你可以使用`routerLink`指令来进行路由跳转,或者在组件内部使用`this.router.navigate`方法: ```html <!-- 使用routerLink --> <a routerLink="/about">关于</a> <!-- 或者在ts中动态跳转 --> <button (click)="goToAbout()">点击去关于</button> ngOnInit() { goToAbout(); } goToAbout() { this.router.navigate(['/about']); } ``` 4. **路由守卫(Optional)**:如果你想控制哪些用户、何时能访问某些路由,可以使用`CanActivate`守卫或其他类型的守卫。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值