Angular学习教程之RouterLink花式跳转


Posted in Javascript onMay 03, 2018

前言

除了使用Router的navigate()方法切换路由,Angular2还提供了一个指令用来 将一个DOM对象增强为路由入口:

@View({
directives:[RouterOutlet,RouterLink]
template : `<nav>
<b router-link="video">video</b> | 
<b router-link="music">music</b>
</nav>
<router-outlet></router-outlet>`
})

RouterLink指令为宿主DOM对象添加click事件监听,在触发时调用Router的 navigate()方法进行路由。

不过本文主要介绍的是关于Angular之RouterLink花式跳转的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

routerLink本身支持两种写法:

<a routerLink="detail">
</a>

<a [routerLink]="['detail']">
</a>

routerLink的值有哪些写法,又有什么区别呢?

假设当前路由为

`http://localhost:4200/#/doc/license`

写法1 : 绝对路径  / + 路由名字

<!--跳到 http://localhost:4200/#/doc/license -->
 <a [routerLink]="['/doc/demo']" >跳呀跳</a>
 
 <!--跳到 http://localhost:4200/#/demo -->
 <a [routerLink]="['/demo']" >跳呀跳</a>

那么url是

http://localhost:4200/#/doc/demo上跳转,即 http://localhost:4200/#/ + 你要跳转的绝对路径。

写法2 : 一个路由名字 路由名字

<a [routerLink]="['demo']" >跳呀跳</a>

那么url是http://localhost:4200/#/doc/license/(demo),即http://localhost:4200/#/doc/license + 你要跳转的绝对路径,这时候它会给你的路由加些东西变成 /(demo),跳转不了。

写法3 :相对路径 ../路由名字

<a [routerLink]="['../demo']" >跳呀跳</a>

那么url是

http://localhost:4200/#/doc/demo,即 http://localhost:4200/#/doc + 你要跳转的相对路径。它会从上一级开始寻找。

写法4  : ./路由名字, 即现在的路由+你写的要跳去的路由

<a [routerLink]="['./demo']" >跳呀跳</a>

那么url是

http://localhost:4200/#/doc/license/demo上,即 http://localhost:4200/#/doc/license + 你要跳转的相对路径。它会从当前路由的下一级开始寻找此匹配的路由进行跳转。

| 更多API用法更新于 github

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
重构Javascript代码示例(重构前后对比)
Jan 23 Javascript
表格单元格交错着色实现思路及代码
Apr 01 Javascript
jquery eval解析JSON中的注意点介绍
Aug 23 Javascript
js 中将多个逗号替换为一个逗号的代码
Jun 07 Javascript
深入学习JavaScript中的原型prototype
Aug 13 Javascript
javascript数据结构之双链表插入排序实例详解
Nov 25 Javascript
jquery实现一个简单的表单验证实例
Mar 30 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
Oct 24 Javascript
bootstrap输入框组使用方法
Feb 07 Javascript
Vue应用部署到服务器的正确方式
Jul 15 Javascript
node.js制作一个简单的登录拦截器
Feb 10 Javascript
详解用js代码触发dom事件的实现方案
Jun 10 Javascript
JS中判断某个字符串是否包含另一个字符串的五种方法
May 03 #Javascript
Vue表单类的父子组件数据传递示例
May 03 #Javascript
Webpack path与publicPath的区别详解
May 03 #Javascript
Webpack中publicPath路径问题详解
May 03 #Javascript
Angular Renderer (渲染器)的具体使用
May 03 #Javascript
react router4+redux实现路由权限控制的方法
May 03 #Javascript
vue.js学习笔记之v-bind和v-on解析
May 03 #Javascript
You might like
IIS6.0+PHP5.x+MySQL5.x+Zend3.0x+GD+phpMyAdmin2.8x通用安装实例(已经完成)
2006/12/06 PHP
一个漂亮的php验证码类(分享)
2013/08/06 PHP
php开发微信支付获取用户地址
2015/10/04 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
2016/07/02 PHP
CI框架AR数据库操作常用函数总结
2016/11/21 PHP
php中目录操作opendir()、readdir()及scandir()用法示例
2019/06/08 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
jQuery 1.5.1 发布,全面支持IE9 修复大量bug
2011/02/26 Javascript
修复IE9&amp;safari 的sort方法
2011/10/21 Javascript
JavaScript中DOM详解
2015/04/13 Javascript
jquery 表单验证之通过 class验证表单不为空
2015/11/02 Javascript
Node.js连接postgreSQL并进行数据操作
2016/12/18 Javascript
javascript稀疏数组(sparse array)和密集数组用法分析
2016/12/28 Javascript
vue的Virtual Dom实现snabbdom解密
2017/05/03 Javascript
原生JS 购物车及购物页面的cookie使用方法
2017/08/21 Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
2020/07/20 Javascript
Python实现的批量下载RFC文档
2015/03/10 Python
详解Python中的日志模块logging
2015/06/19 Python
python查看FTP是否能连接成功的方法
2015/07/30 Python
python如何实现远程控制电脑(结合微信)
2015/12/21 Python
python函数中return后的语句一定不会执行吗?
2017/07/06 Python
Django视图之ORM数据库查询操作API的实例
2017/10/27 Python
Python实现批量压缩图片
2018/01/25 Python
flask中过滤器的使用详解
2018/08/01 Python
2019 Python最新面试题及答案16道题
2019/04/11 Python
django框架使用orm实现批量更新数据的方法
2019/06/21 Python
pytorch 固定部分参数训练的方法
2019/08/17 Python
在python中修改.properties文件的操作
2020/04/08 Python
django orm模块中的 is_delete用法
2020/05/20 Python
如何在keras中添加自己的优化器(如adam等)
2020/06/19 Python
Python监听键盘和鼠标事件的示例代码
2020/11/18 Python
一文带你掌握Pyecharts地理数据可视化的方法
2021/02/06 Python
个人求职自荐信范文
2014/06/20 职场文书
大学迎新生标语
2014/10/06 职场文书
个人维稳承诺书
2015/05/04 职场文书
金榜题名主持词
2015/07/02 职场文书