有3种方式

1、在查询参数中传递数据

2、在路由路径中传递数据

定义路由路径时就要指定参数名字,在实际路径中携带参数。

3、在路由配置中传递数据

一、在查询参数中传递数据

第一步:修改模版中商品详情链接,带一个指令queryParams

商品详情

效果:点击链接会传一个商品id为1的参数过去。

第二步:在商品详情组件中接收参数

用ActivatedRoute接收id并赋值给productId显示在模版中。

import { Component, OnInit } from '@angular/core';import { ActivatedRoute } from '@angular/router';

@Component({

selector:'app-product',

templateUrl:'./product.component.html',

styleUrls: ['./product.component.css']

})

exportclass ProductComponent implementsOnInit {privateproductId: number;

constructor(privaterouteInfo: ActivatedRoute) { }

ngOnInit() {this.productId = this.routeInfo.snapshot.queryParams["id"];

}

}

修改模版显示

这里是商品信息组件

商品id是{{productId}}

二、 在路由路径中传递数据

第一步:修改路由path属性使其可以携带数据

{ path: 'product/:id', component: ProductComponent },

第二步:修改路由链接的参数来传递数据

传一个2过去。

商品详情

效果:

第三步,商品详情信息组件,从url中取id

this.productId = this.routeInfo.snapshot.params["id"];

三、参数快照和参数订阅

1、参数快照问题

参数快照就是从snapshot中获取参数。

this.productId = this.routeInfo.snapshot.params["id"];

修改:

商品详情按钮的响应函数,传递一个3过去。

toProductDetails(){this.router.navigate(['/product',3]);

}

问题:

先点主页,再点商品详情链接正确跳转到商品详情组件,再点商品详情按钮,问题来来,url中id变为来3,内容显示中id没有变还是2。

原因:

从home组件路由到component组件,商品详情组件会被创建,它的constructor(),ngOnInit()会被调用一次。

但是从商品详情组件直接路由到商品详情,由于商品详情组件在点击商品详情按钮时已经被创建了,它不会再次被创建,ngOnInit()方法不会再次被创建。所以productId依然保存着第一次被创建时候的值。

解决办法:参数订阅。

2、参数订阅

rxjs的subscribe方法。

ngOnInit() {this.routeInfo.params.subscribe((params: Params)=> this.productId=params["id"]);

}

问题得以解决。

获取路由参数时候:

确定一个组件不会从自身路由到自身,可以通过参数快照方式获取参数。

不确定,则用参数订阅方式获取。

本文作者starof,因知识本身在变化,作者也在不断学习成长,文章内容也不定时更新,为避免误导读者,方便追根溯源,请诸位转载注明出处:http://www.cnblogs.com/starof/p/9006185.html 有问题欢迎与我讨论,共同进步。

angular路由传递参数_Angular路由——在路由时候传递数据相关推荐

  1. vue路由传递参数(五)路由嵌套,子路由写法,以及从定向

    vue路由传递参数(四)捕获所有路由或 404 Not found页面处理_无围之解的博客-CSDN博客 找到router文件夹下面的index.js (一)传递一个参数 1.1 路由下面多一个chi ...

  2. vue 替换路由地址参数(动态修改路由参数)

    1.此种方式适用于直接替换已存在的路由参数值,无需新增或删除路由参数: 在项目中,比如进入我的订单页面,订单页面有不同的几个菜单,如:待付款.待发货.待收货.待收货等: 我们想要实现从不同的菜单点击进 ...

  3. php url传递参数_python+Requests接口自动化测试之传递 URL 参数

    Requests传递 URL 参数: 你也许经常想为 URL 的查询字符串(query string)传递某种数据.如果你是手工构建 URL,那么数据会以键/值对的形式置于 URL 中,跟在一个问号的 ...

  4. linux向脚本传递参数,Linux 使用位置变量向脚本传递参数

    参考:<Linux命令 / 编辑器与脚本编程> ################################################# 脚本文件在执行时,也可以像命令和应用程序 ...

  5. python 函数参数的传递(参数带星号的说明) 元组传递 字典传递

    python中函数参数的传递是通过赋值来传递的.函数参数的使用又有俩个方面值得注意:1.函数参数是如何定义的 2.在调用函数的过程中参数是如何被解析 先看第一个问题,在python中函数参数的定义主要 ...

  6. uniapp App跳转微信小程序并互相传递参数、接收微信小程序传递的参数

    本文是uniapp打包成安卓App. 一.注意事项 1.用到了分享功能,在打包App时,需要配置manifest.json:App 模块配置->Share.按照提示填写微信分享的信息,appid ...

  7. uipath sequence传递参数_界面换热和压力传递的相互影响机制 | 压铸过程高级分析...

    原标题:界面换热和压力传递的相互影响机制 | 压铸过程高级分析 压铸是一种生产效率高并且能够生产各种复杂形状轻合金(主要为铝.镁及锌合金)产品的近净成形技术.在压铸过程中,熔融金属在冲头的作用下以高速 ...

  8. android activity之间跳转和数据传递参数,Activity跳转(有返回数据跳转)以及传递参数和回传参数...

    使用Bundle在Activity之间传递数据 Bundle类是一个key-value对,是一个final类 两个Activity之间通信可以用Bundle类实现步骤: 新建一个Bundle类 Bun ...

  9. formdata传递参数_前端利用formData格式进行数据上传,前端formData 传值 和 json传值的区别?...

    contentType 常见的格式 text/plain :纯文本格式 application/json: JSON数据格式 application/x-www-form-urlencoded 中默认 ...

最新文章

  1. sql server备份和还原
  2. vue 导入公共css_HTML+CSS入门 vue引入通用CSS
  3. 数据可视化必修课 - 图表篇
  4. 学习Python有什么好的书籍?推荐这几本
  5. Dubbo(八)之API 配置
  6. Python《多线程并发爬虫》
  7. 论文阅读笔记(一)——DESCENDING THROUGH A CROWDED VALLEY—BENCHMARKING DEEP LEARNING OPTIMIZERS
  8. RK3288 开机时间和开机速度优化安卓系统优化
  9. 个人考研资料整理(更新一战后感想)
  10. 神经元模型hhmodel模型_基于HH模型神经元动作电位的模拟与实现
  11. 百度搜索框的测试点:
  12. 测试udp服务的端口是否可用
  13. Fragmentation 源码分析
  14. [0xFA-2021][AdWorld]game
  15. 【blast安装及使用】如何在Linux配置blast做序列对比
  16. 7.17 正则表达式 re模块
  17. NL-meals、BM3D
  18. 计算机AMD方案不超过4000元,4000元左右AMD R5-1400配RX570全新芯片显卡电脑配置推荐...
  19. 年薪几十万的北漂生活是怎样的
  20. PROFINET转Modbus连接西门子PLC与汇川变频器

热门文章

  1. 三菱模拟量输入与输出程序_初学PLC是学习西门子还是三菱?
  2. asp.net Linux 界面,在 ASP.NET 中实现不同角色的用户使用不同登录界面的方法
  3. redhat6 删除mysql_Red Hat enterprise linux 6卸载默认安装的 mysql
  4. C语言 用链表对学号进行排序,求解C语言中建立一个对链表按照学号进行排序的问题...
  5. MSP432P401R TI Drivers 库函数学习笔记(一)导入工程模板
  6. Workbox.routing v3.x 中文版
  7. Linux 系统应用编程——进程间通信(上)
  8. Python爬虫学习二爬虫基础了解
  9. VC编辑框(EDIT)的自动换行、自动滚屏 、到指定行数自动清空
  10. 在python中可以使用urllib方便的实现图片和flash下载