angular2中router路由跳转navigate的使用与刷新页面问题详解


Posted in Javascript onMay 07, 2017

本文主要介绍的是angular2中router路由跳转navigate的使用与刷新页面问题的相关内容,分享出供大家参考学习,下面来看看详细的介绍:

一、router.navigate的使用

navigate是Router类的一个方法,主要用来跳转路由。

函数定义:

navigate(commands: any[], extras?: NavigationExtras) : Promise`<boolean>`
interface NavigationExtras {
 relativeTo : ActivatedRoute
 queryParams : Params
 fragment : string
 preserveQueryParams : boolean
 preserveFragment : boolean
 skipLocationChange : boolean
 replaceUrl : boolean
}

1.this.router.navigate(['user', 1]);

以根路由为起点跳转

2.this.router.navigate(['user', 1],{relativeTo: route});

默认值为根路由,设置后相对当前路由跳转,route是ActivatedRoute的实例,使用需要导入ActivatedRoute

3.this.router.navigate(['user', 1],{ queryParams: { id: 1 } });
路由中传参数 /user/1?id=1

4.this.router.navigate(['view', 1], { preserveQueryParams: true });

默认值为false,设为true,保留之前路由中的查询参数/user?id=1 to /view?id=1

5.this.router.navigate(['user', 1],{ fragment: 'top' });

路由中锚点跳转 /user/1#top

6.this.router.navigate(['/view'], { preserveFragment: true });

默认值为false,设为true,保留之前路由中的锚点/user/1#top to /view#top

7.this.router.navigate(['/user',1], { skipLocationChange: true });

默认值为false,设为true路由跳转时浏览器中的url会保持不变,但是传入的参数依然有效

8.this.router.navigate(['/user',1], { replaceUrl: true });

未设置时默认为true,设置为false路由不会进行跳转

二、router.navigate刷新页面问题

造成这个问题一般是因为我们在<form>表单中使用<button>时忘记添加type属性,在表单中,如果忘记给按钮添加属性,会默认为submit

<button (click)="toDetail()">detail</button>
toDetail() {
 this._router.navigate(['/detail']);
}

解决方法:

1.添加type

<button type="button" (click)="toDetail()">detail</button>

2.click添加false

<button (click)="toDetail();false">detail</button>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者使用Angular.js能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
工作中常用到的JS表单验证代码(包括例子)
Nov 11 Javascript
jquery一句话全选/取消全选
Mar 01 Javascript
JS完成代码前最好对其做5件事
Apr 07 Javascript
jQuery实现Twitter的自动文字补齐特效
Nov 28 Javascript
JS实现可关闭的对联广告效果代码
Sep 14 Javascript
轻松学习jQuery插件EasyUI EasyUI创建RSS Feed阅读器
Nov 30 Javascript
Google 地图获取API Key详细教程
Aug 06 Javascript
JS奇技之利用scroll来监听resize详解
Jun 15 Javascript
基于Vue2x的图片预览插件的示例代码
May 14 Javascript
详解小程序输入框闪烁及重影BUG解决方案
Aug 31 Javascript
Vue.js实现开发购物车功能的方法详解
Feb 22 Javascript
超简单的微信小程序轮播图
Nov 22 Javascript
Angular2中select用法之设置默认值与事件详解
May 07 #Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
May 07 #Javascript
Angular.Js中ng-include指令的使用与实现
May 07 #Javascript
Angular.js中ng-include用法及多标签页面的实现方式详解
May 07 #Javascript
JavaScript的继承实现小结
May 07 #Javascript
vue2.0多条件搜索组件使用详解
Mar 26 #Javascript
Vue 进阶教程之v-model详解
May 06 #Javascript
You might like
解析PHP强制转换类型及远程管理插件的安全隐患
2014/06/30 PHP
php取得字符串首字母的方法
2015/03/25 PHP
详解ThinkPHP3.2.3验证码显示、刷新、校验
2016/12/29 PHP
Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
2011/03/12 Javascript
IE6中链接A的href为javascript协议时不在当前页面跳转
2014/06/05 Javascript
js实现顶部可折叠的菜单工具栏效果实例
2015/05/09 Javascript
js随机生成字母数字组合的字符串 随机动画数字
2015/09/02 Javascript
跟我学习javascript的prototype原型和原型链
2015/11/18 Javascript
javascript实现粘贴qq截图功能(clipboardData)
2016/05/29 Javascript
利用jQuery插件imgAreaSelect实现获得选择域的图像信息
2016/12/02 Javascript
Bootstrap源码解读导航条(7)
2016/12/23 Javascript
js实现数组去重方法及效率?Ρ? target=
2017/02/14 Javascript
javascript 数据存储的常用函数总结
2017/06/01 Javascript
nodejs body-parser 解析post数据实例
2017/07/26 NodeJs
基于bootstrop常用类总结(推荐)
2017/09/11 Javascript
Vue下的国际化处理方法
2017/12/18 Javascript
Vue组件Draggable实现拖拽功能
2018/12/01 Javascript
解决Vue+Electron下Vuex的Dispatch没有效果问题
2019/05/20 Javascript
JavaScript实现的滚动公告特效【基于jQuery】
2019/07/10 jQuery
JS简单表单验证功能完整示例
2020/01/26 Javascript
Python 转义字符详细介绍
2017/03/21 Python
Python 中开发pattern的string模板(template) 实例详解
2017/04/01 Python
浅谈python jieba分词模块的基本用法
2017/11/09 Python
Python中的正则表达式与JSON数据交换格式
2019/07/03 Python
python 自定义装饰器实例详解
2019/07/20 Python
Python中的延迟绑定原理详解
2019/10/11 Python
浅谈HTML5 服务器推送事件(Server-sent Events)
2017/08/01 HTML / CSS
应届生求职简历的自我评价怎么写
2013/10/23 职场文书
表彰大会策划方案
2014/05/13 职场文书
运动会口号大全
2014/06/07 职场文书
政法干警核心价值观心得体会
2014/09/11 职场文书
银行奉献演讲稿
2014/09/16 职场文书
2014年乡镇工作总结
2014/11/21 职场文书
销售合作意向书范本
2015/05/08 职场文书
Python3.10的一些新特性原理分析
2021/09/15 Python
JS函数式编程实现XDM一
2022/06/16 Javascript