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. Flask 系列之 优化项目结构

    说明 操作系统:Windows 10 Python 版本:3.7x 虚拟环境管理器:virtualenv 代码编辑器:VS Code 实验目标 完善环境配置,添加 异常请求 处理 实现 400.404 ...

  2. Javascript继承3:将优点为我所有----组合式继承

    //声明父类 function ParentClass(name){ //值类型公有属性 this.name = name //引用类型公有属性 this.books = ['Html'] } //父 ...

  3. 程序员奇谈之我写的程序不可能有bug篇

    程序员在普通人的印象里是一份严(ku)谨(bi)的职业,也是一个被搞怪吐槽乐此不疲的职业,程序员们面对复杂的代码敲打电脑时连眉头都不会皱一下,但是有一个词却是他们痛苦的根源,它就是Bug. 有不少的新 ...

  4. 使用vue-cli 初始化 vue 项目

    1. 安装nodejs 2. 安装 vue-cli npm install -g vue-cli 安装前可以通过设置代理为淘宝仓库地址,以加快下载速度. npm config set registry ...

  5. 学习Python3基础知识过程中总结

    print()中end==""的用法 例子:用Python3输出九九乘法表: for i in range(1,10): for j in range(1,i+1): s=i*j ...

  6. Broadcast发送广播

    一.知识介绍 1.[广播分类] ①有序广播:接收者A收到广播传递给B,B传给C,有序传递.任何一个环节都可以终止广播,也可以修改广播中携带的数据. 发送的方式:sendOrderedBroadcast ...

  7. AspNetCore.FileLog 一款很不错的日志记录工具

    AspNetCore.FileLog 该项目作者为伟哥,GitHub地址:https://github.com/amh1979:该项目维护者为鸟窝,GitHub地址:https://github.co ...

  8. webmagic 爬取网页所有文章的标题时间作者和内容

    package com.ij34; import us.codecraft.webmagic.Site; import us.codecraft.webmagic.Page; import us.co ...

  9. Linux之Samba部署

    1.Samba介绍 Samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的一个免费软件,由服务器及客户端程序构成,SMB(Server Messages Block,信息服务块)是一种 ...

  10. Springboot项目配置druid数据库连接池,并监控统计功能

    pom.xml配置依赖 <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dependency> & ...