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 相关文章推荐
JQuery 操作Javascript对象和数组的工具函数小结
Jan 22 Javascript
js加入收藏以及使用Jquery更改透明度
Jan 26 Javascript
js变形金刚文字特效代码分享
Aug 20 Javascript
jQuery siblings()用法实例详解
Apr 26 Javascript
AngularJS中的DOM操作用法分析
Nov 04 Javascript
微信开发 JS-SDK 6.0.2 经常遇到问题总结
Dec 08 Javascript
js时间查询插件使用详解
Apr 07 Javascript
vue内置组件transition简单原理图文详解(小结)
Jul 12 Javascript
vue 实现边输入边搜索功能的实例讲解
Sep 16 Javascript
JavaScript常见事件对象与操作实例总结
Jan 05 Javascript
ES6小技巧之代替lodash
Jun 07 Javascript
如何使用JavaScript实现栈与队列
Jun 24 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之第三天
2006/10/09 PHP
php中数字0和空值的区别分析
2014/06/05 PHP
php实现建立多层级目录的方法
2014/07/19 PHP
php通过array_unshift函数添加多个变量到数组前端的方法
2015/03/18 PHP
Joomla语言翻译类Jtext用法分析
2016/05/05 PHP
初学prototype,发个JS接受URL参数的代码
2006/09/25 Javascript
jquery获取复选框被选中的值
2014/03/22 Javascript
node.js中的fs.readFileSync方法使用说明
2014/12/15 Javascript
漂亮! js实现颜色渐变效果
2016/08/12 Javascript
AngularJS表单验证中级篇(3)
2016/09/28 Javascript
JS限制条件补全问题实例分析
2016/12/16 Javascript
微信小程序 Tab页切换更新数据
2017/01/05 Javascript
详解通过JSON数据使用VUE.JS
2017/05/26 Javascript
详解bootstrap导航栏.nav与.navbar区别
2017/11/23 Javascript
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
JavaScript设计模式之观察者模式实例详解
2019/01/16 Javascript
移动端底部导航固定配合vue-router实现组件切换功能
2019/06/13 Javascript
WEEX环境搭建与入门详解
2019/10/16 Javascript
vue2路由方式--嵌套路由实现方法分析
2020/03/06 Javascript
[01:10]3.19DOTA2发布会 三代刀塔人第一代
2014/03/25 DOTA
python调用windows api锁定计算机示例
2014/04/17 Python
Python数据可视化正态分布简单分析及实现代码
2017/12/04 Python
pytorch + visdom CNN处理自建图片数据集的方法
2018/06/04 Python
mac下给python3安装requests库和scrapy库的实例
2018/06/13 Python
python将字符串转换成json的方法小结
2019/07/09 Python
Python爬虫:将headers请求头字符串转为字典的方法
2019/08/21 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
2020/01/06 Python
python一些性能分析的技巧
2020/08/30 Python
django跳转页面传参的实现
2020/09/17 Python
Python基于tkinter canvas实现图片裁剪功能
2020/11/05 Python
配置H5的滚动条样式的示例代码
2018/03/09 HTML / CSS
Foot Locker英国官网:美国知名运动产品零售商
2019/02/21 全球购物
C#如何允许一个类被继承但是避免这个类的方法被重载?
2015/02/24 面试题
初中学校军训方案
2014/05/09 职场文书
电大奖学金获奖感言
2014/08/14 职场文书
防灾减灾日活动总结
2014/08/26 职场文书