angular 4 router传递数据三种方法
1.在查询参数中传递数据
- <a [routerLink]="['/product']" [queryParams]="{id:1,name:'dongian'}">product</a>
然后在app-routing.module.ts中配置
- const routes: Routes = [
- {path: 'product', component: ProductComponent}
- ];
最后在product.component.ts中接收参数
- private productShop: any = {};
- constructor(private routeInfo: ActivatedRoute ) { }
- ngOnInit() {
- this.routeInfo.queryParams.subscribe(queryParams => {
- this.productShop.id = queryParams.id;
- this.productShop.name = queryParams.name;
- });
- }
当然记得 ActivatedRoute是需要注入。。。在页面就可以打印出来了
2.路由路径中传递参数 (在这里我会将2种参数接收方式)
- <a [routerLink]="['/product',1]">product</a>
然后在app-routing.module.ts中配置
- const routes: Routes = [
- {path: 'product/:id', component: ProductComponent}
- ];
最后在product.component.ts中接收参数
第一种 也称作 参数快照
- private productShop: number;
- constructor(private routeInfo: ActivatedRoute ) { }
- ngOnInit() {
- this.productShop = this.routeInfo.snapshot.params['id'];
- }
第二种 也称作 参数订阅
- private productShop: any;
- constructor(private routeInfo: ActivatedRoute ) { }
- ngOnInit() {
- this.routeInfo.params.subscribe(params => this.productShop = params['id']);
- }
区别也就在于url地址相同,传递参数不同时(比如说,一个是a标签方式跳转,一个是点击事件的方式跳转,2种情况同时存在时),使用第二种方法,
不存在这种情况的时候使用可以使用第一种
3.路由配置中传递参数(当然也要2中写法)
- onProduct() {
- this.router.navigate(['product', 2]);
- }
这里主要讲第二种
- <button (click)="onProduct()">商品详情</button>
- onProduct() {
- this.router.navigate(['product'], {queryParams: {id: 2, name: 'dongtian'}});
- }
- private productShop: any = {};
- constructor(private routeInfo: ActivatedRoute ) { }
- ngOnInit() {
- this.routeInfo.queryParams.subscribe( queryParams => {
- this.productShop.id = queryParams.id;
- this.productShop.name = queryParams.name;
- });
- }
angular 4 router传递数据三种方法的更多相关文章
- Android传递数据5种方法
Android开发中,在不同模块(如Activity)间经常会有各种各样的数据需要相互传递,我把常用的几种 方法都收集到了一起.它们各有利弊,有各自的应用场景. 我现在把它们集中到一个例子中展示 ...
- Struts2中表单与Action传递数据三种方式
1. Action中的属性与表单中的属性一致就可以 JSP中的表单 <form action="login.action" method="post&q ...
- ASP.NET MVC 中将数据从View传递到控制器中的三种方法(表单数据绑定)
http://www.cnblogs.com/zyqgold/archive/2010/11/22/1884779.html 在ASP.NET MVC框架中,将视图中的数据传递到控制器中,主要通过发送 ...
- React Router v4 页面传值的三种方法
传值方法 1.props.params 使用React router定义路由时,我们可以给指定一个path,然后指定通配符可以携带参数到指定的path: <Route path='/user/: ...
- DataTable数据批量写入数据库三种方法比较
DataTable数据批量写入数据库三种方法比较 标签: it 分类: C#1) insert循环插入:2) sqldataadapter.update(dataset,tablename); ...
- mfc 在VC的两个对话框类中传递参数的三种方法
弄了好久,今天终于把在VC中的对话框类之间传递参数的问题解决了,很开心,记录如下: 1. 我所建立的工程是一个基于MFC对话框的应用程序,一共有三个对话框,第一个对话框为主对话框,所对应的类为CTMD ...
- 去除DataTable重复数据的三种方法
业务需求 最近做一个把源数据库的数据批次导出到目标数据库.源数据库是采集程序采集而来的原始数据库,所以需要对其进行一些处理(过滤一些为空,长度太短或太长,非法字符,重复数据)然后在进行入库. 其中要避 ...
- 【转】asp.net导出数据到Excel的三种方法
来源:http://www.cnblogs.com/lishengpeng1982/archive/2008/04/03/1135490.html 原文出处:http://blog.csdn.net/ ...
- JAVA写JSON的三种方法,java对象转json数据
JAVA写JSON的三种方法,java对象转json数据 转自:http://www.xdx97.com/#/single?bid=5afe2ff9-8cd1-67cf-e7bc-437b74c07a ...
随机推荐
- xxxx-xx-xx的时间的加减
<!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="UTF-8& ...
- 在sublimen中整理CSS代码及其兼容性问题
1,使用鼠标选中前面浅灰色缩进. 2,Ctrl+H 查找替换 点击 Find All 查找全部缩进. 3,按backspace向后删除两次,如下图所示: 4,向下按一次方向键,再向左按一次方向键,最 ...
- Array的 map() 和 reduce()
map() map() 方法返回一个新数组,新数组中的元素为原始数组中的元素依次调用参数中的函数处理后的值. map() 方法不会对空数组进行检测,也不会修改原数组. 语法: array.map(fu ...
- TS学习随笔(五)->函数
这篇文章我们来看一下TS里面的函数 函数声明 在 JavaScript 中,有两种常见的定义函数的方式——函数声明(Function Declaration)和函数表达式(Function Expre ...
- win10系统关闭自动更新
win10关闭自动更新 步骤①右键“此电脑”选择“管理”选项 步骤②(如下图所示): 步骤③: 步骤④: 好啦!这样就大功告成了!
- Rsync客户端卡死的问题查询
简介 某备份系统大量使用rsync来传输文件,但是偶尔会出现rsync客户端在上传数据的时候长时间卡死,本文记录了解决问题的步骤. 本文只涉及rsync客户端中IO相关逻辑,关于rsync的发送算法并 ...
- SQLServer之修改表值函数
修改表值函数注意事项 更改先前通过执行 CREATE FUNCTION 语句创建的现有 Transact-SQL 或 CLR 函数,但不更改权限,也不影响任何相关的函数.存储过程或触发器. 不能用 A ...
- c/c++ 网络编程 UDP 发送端 bind 作用
网络编程 UDP 发送端 bind 作用 upd 发送端 调用bind函数的效果:把socket特定到一个指定的端口,如果不调用bind,内核会随机分配一个端口. upd 发送端 调用bind函数的目 ...
- php分页实现
<?php header("content-type:text/html;charset=utf8"); include 'conn.php'; //每页显示的数据条数 $p ...
- jest 自动化测试
概述 jest 是 facebook 开源的,用来进行单元测试的框架,可以测试 javascipt 和 react. 单元测试各种好处已经被说烂了,这里就不多扯了.重点要说的是,使用 jest, 可以 ...