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 相关文章推荐
对xmlHttp对象的理解
Jan 17 Javascript
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
Mar 04 Javascript
JS中字符串trim()使用示例
May 26 Javascript
jquery实现像栅栏一样左右滑出式二级菜单效果代码
Aug 24 Javascript
vue移动UI框架滑动加载数据的方法
Mar 12 Javascript
vue中如何让子组件修改父组件数据
Jun 14 Javascript
js实现各浏览器全屏代码实例
Jul 03 Javascript
vue.js图片转Base64上传图片并预览的实现方法
Aug 02 Javascript
基于webpack4+vue-cli3项目实现换肤功能
Jul 17 Javascript
vue递归组件实战之简单树形控件实例代码
Aug 27 Javascript
VUE使用 wx-open-launch-app 组件开发微信打开APP功能
Aug 11 Javascript
Vue2.x-使用防抖以及节流的示例
Mar 02 Vue.js
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中Session的概念
2006/10/09 PHP
php和jquery实现地图区域数据统计展示数据示例
2014/02/12 PHP
解决Codeigniter不能上传rar和zip压缩包问题
2014/03/07 PHP
PHP错误处理函数register_shutdown_function使用示例
2017/07/03 PHP
JS 有名函数表达式全面解析
2010/03/19 Javascript
解析John Resig Simple JavaScript Inheritance代码
2012/12/03 Javascript
js中document.write使用过程中的一点疑问解答
2014/03/20 Javascript
鼠标悬浮停留三秒后自动显示大图js代码
2014/09/09 Javascript
JavaScript中的6种运算符总结
2014/10/16 Javascript
node.js中的fs.rmdirSync方法使用说明
2014/12/16 Javascript
jQuery中使用each处理json数据
2015/04/23 Javascript
js实现tab切换效果实例
2015/09/16 Javascript
AngularJS过滤器filter用法总结
2016/12/13 Javascript
前端 Vue.js 和 MVVM 详细介绍
2016/12/29 Javascript
js实现颜色阶梯渐变效果(Gradient算法)
2017/03/21 Javascript
JavaScript内存泄漏的处理方式
2017/11/20 Javascript
Vuex 单状态库与多模块状态库详解
2018/12/11 Javascript
JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果示例
2019/01/29 Javascript
微信小程序页面传多个参数跳转页面的实现方法
2019/05/17 Javascript
零基础写python爬虫之抓取百度贴吧并存储到本地txt文件改进版
2014/11/06 Python
详解Python_shutil模块
2019/03/15 Python
Python面向对象之类和实例用法分析
2019/06/08 Python
Django时区详解
2019/07/24 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
2019/08/26 Python
pycharm实现猜数游戏
2020/12/07 Python
简单的HTML5初步入门教程
2015/09/29 HTML / CSS
RetroStage德国:复古服装
2019/02/03 全球购物
SheIn沙特阿拉伯:女装在线
2020/03/23 全球购物
大学团支书的自我评价分享
2013/12/14 职场文书
社区党员群众路线教育实践活动心得体会
2014/11/03 职场文书
担保书范本
2015/01/20 职场文书
酒店员工辞职信范文
2015/02/28 职场文书
中学生运动会广播稿
2015/08/19 职场文书
pycharm无法导入lxml的解决办法
2021/03/31 Python
一小时迅速入门Mybatis之bind与多数据源支持 Java API
2021/09/15 Javascript
JS前端使用Canvas快速实现手势解锁特效
2022/09/23 Javascript