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传递数据三种方法的更多相关文章

  1. Android传递数据5种方法

       Android开发中,在不同模块(如Activity)间经常会有各种各样的数据需要相互传递,我把常用的几种 方法都收集到了一起.它们各有利弊,有各自的应用场景. 我现在把它们集中到一个例子中展示 ...

  2. Struts2中表单与Action传递数据三种方式

    1.       Action中的属性与表单中的属性一致就可以 JSP中的表单 <form action="login.action" method="post&q ...

  3. ASP.NET MVC 中将数据从View传递到控制器中的三种方法(表单数据绑定)

    http://www.cnblogs.com/zyqgold/archive/2010/11/22/1884779.html 在ASP.NET MVC框架中,将视图中的数据传递到控制器中,主要通过发送 ...

  4. React Router v4 页面传值的三种方法

    传值方法 1.props.params 使用React router定义路由时,我们可以给指定一个path,然后指定通配符可以携带参数到指定的path: <Route path='/user/: ...

  5. DataTable数据批量写入数据库三种方法比较

    DataTable数据批量写入数据库三种方法比较 标签: it 分类: C#1)   insert循环插入:2)   sqldataadapter.update(dataset,tablename); ...

  6. mfc 在VC的两个对话框类中传递参数的三种方法

    弄了好久,今天终于把在VC中的对话框类之间传递参数的问题解决了,很开心,记录如下: 1. 我所建立的工程是一个基于MFC对话框的应用程序,一共有三个对话框,第一个对话框为主对话框,所对应的类为CTMD ...

  7. 去除DataTable重复数据的三种方法

    业务需求 最近做一个把源数据库的数据批次导出到目标数据库.源数据库是采集程序采集而来的原始数据库,所以需要对其进行一些处理(过滤一些为空,长度太短或太长,非法字符,重复数据)然后在进行入库. 其中要避 ...

  8. 【转】asp.net导出数据到Excel的三种方法

    来源:http://www.cnblogs.com/lishengpeng1982/archive/2008/04/03/1135490.html 原文出处:http://blog.csdn.net/ ...

  9. JAVA写JSON的三种方法,java对象转json数据

    JAVA写JSON的三种方法,java对象转json数据 转自:http://www.xdx97.com/#/single?bid=5afe2ff9-8cd1-67cf-e7bc-437b74c07a ...

随机推荐

  1. 原生js实现数据单向绑定

    Object.defineProperty()方法直接在对象上定义一个新属性,或修改对象上的现有属性,并返回该对象. Object.defineProperty(obj, prop, descript ...

  2. [JS设计模式]:单例模式(1)

    什么是单例模式 所谓单例,就是一个类只有一个实例,实现的方法一般是先判断是否存在实例,如果存在就直接返回,如果不存在就创建了再返回.这样确保了一个类只有一个实例对象. 实现的单例有很多种方式,最简单的 ...

  3. 【20190415】JavaScript-事件流与stopPropagation()、stopImmediatePropagation()的误区解析

    这两天仔细看了一下MDN上关于事件流机制和相关方法的文档,发现有个很大的误区.过去我一直以为stopPropagation()就是用来阻止事件冒泡的,甚至很多博客和菜鸟教程上都是这样写的.但实际上文档 ...

  4. jsp+servlet include引入文件指令

    1.index.jsp为首页 <%@ page contentType="text/html;charset=UTF-8" import="java.util.*& ...

  5. SSM登陆拦截器实现

    首先在springmvc中配置拦截器 <!-- 配置拦截器 --> <mvc:interceptors> <mvc:interceptor> <!-- 拦截所 ...

  6. Grafana 利用Grafana Variables变量配置快速切换不同主机的图表数据展示

    用Grafana Variables变量配置快速切换不同主机的图表数据展示   by:授客 QQ:1033553122 测试环境 需求描述 操作步骤 结果展示 测试环境 influxdb-1.5.2. ...

  7. Python Django对接企业微信第三方服务回调验证的一些坑

    今天公司老总,叫我把公司的企业微信,服务商管理后台中的本地应用进行回调验证. 听起来一脸懵逼,没搞过企业微信对接情况.一头雾水,不知道如何下手. 先讲解一下,企业微信情况. 登录到企业微信后,右上角服 ...

  8. centos7 安装java运行环境

    1.检测是否存在相关历史版本 shell:java-version 1.1.存在相关OpenJDK和其他版本SDK则需要删除,如图. 查看详细信息,命令窗口输入,shell:rpm -qa | gre ...

  9. 高版本Sqlserver数据库导入低版本Sqlserver

    今天想跑一个关于java网站的demo,结果在附加数据库项这一块出现问题,例程的数据库用的是sqlserver2014,而我的是2008,添加数据库出现错误.经过一番查找,也找到某人写的一些博客上的解 ...

  10. Oracle 12c RAC 静默安装文档

    参考文档: https://docs.oracle.com/en/database/oracle/oracle-database/12.2/cwlin/index.html https://docs. ...