Angular 路由传值

1、get传值(‘?’ 后面拼接参数)

routing中配置:

const routes: Routes = [{ path: 'news', component: NewsComponent }],

要传值的组件:

html中跳转:

<div [routerLink]="['/news']" [queryParams]="{id: '11'}">

queryParams 里的 id 会出现在url的问号 ’ ? ’ 后面。

接受值的组件:

// 在ts中引入:
import { ActivatedRoute } from '@angular/router';
constructor(private route: ActivatedRoute) {}   // 构造函数中声明
// 获取:
ngOnInit() {
  this.route.queryParams.subscribe((data) => {
  // data是一个对象,里面有传过来的值
     this.id = data.id;
  });
}

结果:
在这里插入图片描述

2、动态路由传值跳转

routing中配置:

const routes: Routes = [{ path: 'news/:id', component: NewsComponent }],
// 这个id就是一个动态值,可以让我们在url中动态输入

要传值的组件:

html中跳转:

<div [routerLink]="['/news', '11']">

接受值的组件:

// 在ts中引入:
import { ActivatedRoute } from '@angular/router';
constructor(private route: ActivatedRoute) {}   // 构造函数中声明
// 获取:
ngOnInit() {
  this.route.params.subscribe((data) => {
  // data是一个对象,里面有传过来的值
     this.id = data.id;
  });
}

注意:这个data.id中的id是在routing中配置的动态路由中的参数

结果:
在这里插入图片描述

3、动态路由的JS跳转

传值的组件:

html中:

<button (click)="goNews()">点我跳转</button>

ts中:

// 在ts中引入:
import { Router } from '@angular/router';
constructor(private router: Router) {}   // 构造函数中声明

goNews() {
	// 普通路由
	this.router.navigate(['/home']);
	// 动态路由
	this.router.navigate(['/home/', '11']);
}

接受值的组件:

// 在ts中引入:
import { ActivatedRoute } from '@angular/router';
constructor(private route: ActivatedRoute) {}   // 构造函数中声明
// 获取:
ngOnInit() {
  this.route.params.subscribe((data) => {
  // data是一个对象,里面有传过来的值
     this.id = data.id;
  });
}

注意:这个data.id中的id是在routing中配置的动态路由中的参数

结果:
在这里插入图片描述

4、路由get传值的js跳转( ‘?’ 后面拼接参数)

传值的组件:

html中:

<button (click)="goNews()">点我跳转</button>

ts中:

// 在ts中引入:
import { Router, NavigationExtras } from '@angular/router';
constructor(private router: Router) {}   // 构造函数中声明

goNews() {
	const myQueryParams: NavigationExtras = {
	queryParams: {
		id: '11',
		name: 'tom'
	}
};
this.router.navigate(['/team-project'], myQueryParams);
}

接受值的组件:

// 在ts中引入:
import { ActivatedRoute } from '@angular/router';
constructor(private route: ActivatedRoute) {}   // 构造函数中声明
// 获取:
ngOnInit() {
  this.route.queryParams.subscribe((data) => {
  // data是一个对象,里面有传过来的值
     this.id = data.id;
  });
}

结果:
在这里插入图片描述

5、两者结合传值

routing中配置:

const routes: Routes = [{ path: 'news/:id', component: NewsComponent }],
// 这个id就是一个动态值,可以让我们在url中动态输入

传值组件:

const myQueryParams: NavigationExtras = {
	queryParams: {
		name: 'tom',
		age: '22'
	}
};
this.router.navigate([`/news/11`], myQueryParams);

结果:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值