详解Angular5路由传值方式及其相关问题


Posted in Javascript onApril 28, 2018

目前Angular已经升级到了稳定版本Angular5,这次升级更小更快以及更稳定!路由可以说是Angular甚至是单页应用的核心部分了吧!在angularjs中的路由最大的缺点就是无法嵌套路由,在Angular中解决了这个问题!在Angular中路由不仅仅是页面跳转,其中还有一项叫英雄列表跳转英雄详情!在诸多的列表,不可能给每个英雄做一个详情页,于是乎路由参数起到作用了!通过路由传入参数识别那个英雄的详情!

现在对于路由传值进行详解,首先一种方式是官网的导航到详情的单值id传入,另一种是多数据传入!

1.单值传入

['/hero', hero.id]
<ul class="items">
  <li *ngFor="let hero of heroes$ | async"
   [class.selected]="hero.id === selectedId">
   <a [routerLink]="['/hero', hero.id]">
    <span class="badge">{{ hero.id }}</span>{{ hero.name }}
   </a>
  </li>
 </ul>

以上是官网示例

下面我们用我自己的示例介绍一下:

首先是列表页,以及跳转方式

<p *ngFor="let item of items" [routerLink]="['/listDetail',item.id]">{{item.name}}</p>

然后是配置路由:(单值传入的方式需要在详情组件路由配置)

{
  path:'listDetail/:id',
  component:ListDetailComponent
 },

传入后就是取到参数,在详情组件的ngOnInit生命周期获取参数

ngOnInit() {
  this.route.params
   .subscribe((params: Params) => {
    this.id = params['id'];
    console.log(this.id);
    console.log('传值');
    console.log(params)
   })
 }

2.我们在平时的复杂的业务场景我们需要传多个数据,这时候该怎么办呢?这时候我们就用到了queryParams

<p *ngFor="let data of datas" [routerLink]="['/listDetails']" [queryParams]="{id:data.id,state:data.state}">{{data.name}}</p>

这里数据我是直接拿上去的,同样你可以组织好数据,一个参数放上去,简化html结构,现在有个问题,这样多值传入路由参数怎么配置呢?/:id/:id???我这个参数多少也不是固定的咋办?其实这种方式不需要配置路由!你只需要传入和取到数据就可以了!

ngOnInit() {
  this.route.queryParams
   .subscribe((params: Params) => {
    this.id = params['id'];
    this.state = params['state'];
    console.log(params)
    console.log(this.id);
    console.log(this.state);

   })
 }

以上就是Angular路由传值两种方式!希望对大家有帮助!也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
初窥JQuery(二) 事件机制(1)
Nov 25 Javascript
jquery提取元素里的纯文本不包含span等里的内容
Sep 30 Javascript
如何用jquery控制表格奇偶行及活动行颜色
Apr 20 Javascript
小米公司JavaScript面试题
Dec 29 Javascript
javascript实现仿IE顶部的可关闭警告条
May 05 Javascript
常用原生JS兼容性写法汇总
Apr 27 Javascript
JavaScript页面实时显示当前时间实例代码
Oct 23 Javascript
AngularJS实现Input格式化的方法
Nov 07 Javascript
JS利用cookies设置每隔24小时弹出框
Apr 20 Javascript
jQuery滚动条美化插件nicescroll简单用法示例
Apr 18 jQuery
JavaScript实现学生在线做题计时器功能
Dec 05 Javascript
详解vue后台系统登录态管理
Apr 02 Javascript
详解Angular5 路由传参的3种方法
Apr 28 #Javascript
深入理解Vue nextTick 机制
Apr 28 #Javascript
jQuery实现的电子时钟效果完整示例
Apr 28 #jQuery
vue+jquery+lodash实现滑动时顶部悬浮固定效果
Apr 28 #jQuery
Vue实现PopupWindow组件详解
Apr 28 #Javascript
详解angular路由高亮之RouterLinkActive
Apr 28 #Javascript
vue弹窗组件使用方法
Apr 28 #Javascript
You might like
php模板引擎技术简单实现
2016/03/15 PHP
PHP安装GeoIP扩展根据IP获取地理位置及计算距离的方法
2016/07/01 PHP
PHP abstract 抽象类定义与用法示例
2018/05/29 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
JS array 数组详解
2009/03/22 Javascript
js 判断一个元素是否在页面中存在
2012/12/27 Javascript
JavaScript var声明变量背后的原理示例解析
2013/10/12 Javascript
使用jsonp完美解决跨域问题
2014/11/27 Javascript
jQuery使用post方法提交数据实例
2015/03/25 Javascript
ReactNative之键盘Keyboard的弹出与消失示例
2017/07/11 Javascript
jsTree事件和交互以及插件plugins详解
2017/08/29 Javascript
集合Bootstrap自定义confirm提示效果
2017/09/19 Javascript
vue路由对不同界面进行传参及跳转的总结
2019/04/20 Javascript
vue中的面包屑导航组件实例代码
2019/07/01 Javascript
Python中实现三目运算的方法
2015/06/21 Python
浅谈Python 中整型对象的存储问题
2016/05/16 Python
Python高级特性切片(Slice)操作详解
2018/09/27 Python
django框架用户权限中的session缓存到redis中的方法
2019/08/06 Python
python通过实例讲解反射机制
2019/10/17 Python
Django3.0 异步通信初体验(小结)
2019/12/04 Python
Python实现非正太分布的异常值检测方式
2019/12/09 Python
Python如何向SQLServer存储二进制图片
2020/06/08 Python
Python 中如何写注释
2020/08/28 Python
html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例
2014/05/08 HTML / CSS
英国儿童家具专卖店:GLTC
2016/09/24 全球购物
来自美国主售篮球鞋的零售商店:KICKSUSA
2017/11/28 全球购物
客房主管岗位职责
2013/12/09 职场文书
幼儿园消防安全制度
2014/01/26 职场文书
庆中秋节主题活动方案
2014/02/03 职场文书
学生请假条
2014/04/11 职场文书
教师个人读书活动总结
2014/07/08 职场文书
学生上课看漫画的检讨书
2014/09/26 职场文书
机关作风建设心得体会
2014/10/22 职场文书
2015年度保密工作总结
2015/04/24 职场文书
Python异常类型以及处理方法汇总
2021/06/05 Python
Java 使用类型为Object的变量指向任意类型的对象
2022/04/13 Java/Android