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 $.getJSON 在IE下的缓存问题解决方法
Oct 10 Javascript
Jquery解析Json格式数据过程代码
Oct 17 Javascript
Javascript实现的简单右键菜单类
Sep 23 Javascript
ajax在兼容模式下失效的快速解决方法
Mar 22 Javascript
使用jQuery UI库开发Web界面的简单入门指引
Apr 22 Javascript
全面解析多种Bootstrap图片轮播效果
May 27 Javascript
使用vue实现点击按钮滑出面板的实现代码
Jan 10 Javascript
AngularJS学习笔记之表单验证功能实例详解
Jul 06 Javascript
Vue-cropper 图片裁剪的基本原理及思路讲解
Apr 17 Javascript
vue-cli3跨域配置的简单方法
Sep 06 Javascript
jQuery实时统计输入框字数及限制
Jun 24 jQuery
vue首次渲染全过程
Apr 21 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
德生1994机评
2021/03/02 无线电
桌面中心(四)数据显示
2006/10/09 PHP
PHP 表单提交给自己
2008/07/24 PHP
php 字符串替换的方法
2012/01/10 PHP
php利用单例模式实现日志处理类库
2014/02/10 PHP
[原创]php逐行读取txt文件写入数组的方法
2015/07/02 PHP
Laravel中错误与异常处理的用法示例
2018/09/16 PHP
PHP如何使用array_unshift()在数组开头插入元素
2020/09/01 PHP
Javascript 布尔型分析
2008/12/22 Javascript
老鱼 浅谈javascript面向对象编程
2010/03/04 Javascript
50个比较实用jQuery代码段
2011/09/18 Javascript
JS+CSS实现经典的左侧竖向滑动菜单效果
2015/09/23 Javascript
JQuery实现简单的图片滑动切换特效
2015/11/22 Javascript
js中最容易被忽视的事件问题大总结
2016/05/15 Javascript
全面了解JavaScript对象进阶
2016/07/19 Javascript
浅谈JS继承_寄生式继承 &amp; 寄生组合式继承
2016/08/16 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
js实现PC端根据IP定位当前城市地理位置
2017/02/22 Javascript
jQuery模拟窗口抖动效果
2017/03/15 Javascript
JavaScript实现的原生态Tab标签页功能【兼容IE6】
2017/09/18 Javascript
js事件on动态绑定数据,绑定多个事件的方法
2018/09/15 Javascript
js计算两个日期间的天数月的实例代码
2018/09/20 Javascript
python抓取网页时字符集转换问题处理方案分享
2014/06/19 Python
最近Python有点火? 给你7个学习它的理由!
2017/06/26 Python
Python把csv数据写入list和字典类型的变量脚本方法
2018/06/15 Python
Python切片操作去除字符串首尾的空格
2019/04/22 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
2020/06/03 Python
对python中list的五种查找方法说明
2020/07/13 Python
Python实现迪杰斯特拉算法并生成最短路径的示例代码
2020/12/01 Python
Oracle中delete,truncate和drop的区别
2016/05/05 面试题
学生会招新策划书
2014/02/14 职场文书
关于国庆节的广播稿
2015/08/19 职场文书
为什么不建议在go项目中使用init()
2021/04/12 Golang
Python 多线程之threading 模块的使用
2021/04/14 Python
JavaScript控制台的更多功能
2021/04/28 Javascript
MySQL子查询中order by不生效问题的解决方法
2021/08/02 MySQL