Angular Route导航
我们用Angular cli创建带有路由的新项目
ng new router --routing
Angular Routes API文档
Angular的文档中有详细的解释:
1)https://angular.cn/docs/ts/latest/api/router/index/Routes-type-alias.html
2)https://angular.cn/docs/ts/latest/guide/router.html#
文档学习:
1)Wild Cards(通配符)
{path: '**', component: Code404Component},
>注意:配置路由,一定要记得引入文件
import {Code404Component} from "./code404/code404.component"
> 通配符路由的path是两个星号('**'),它会匹配任何URL。 当路由器匹配不上以前定义的那些路由时,它就会选择<这个>路由。 通配符路由可以导航到自定义的“404 Not Found”组件,也可以[重定向](https://angular.cn/docs/ts/latest/guide/router.html#redirect)到一个现有路由。
2)关于参数的快照(snapshot)和参数的订阅(subscribe)
export class ProductComponent implements OnInit { private productId : number ; //给ProductComponent设置一个属性(属性名是productId,属性类型是number) constructor(private routerInfo : ActivatedRoute) { } //ActivatedRoute当前路由激活的对象,保存着当前路由的信息,比如路由地址和路由参数 ngOnInit() { this.productId = this.routerInfo.snapshot.queryParams["id"]; //参数快照 this.routerInfo.params.subscribe((params:Params) => this.productId = params ["id"]); //参数订阅 } }
参数快照和参数订阅的区别:
![https://angular.cn/docs/ts/latest/guide/router.html#](http://upload-images.jianshu.io/upload_images/5983836-aa1cd314e9185f0d.gif?imageMogr2/auto-orient/strip)
>比如API中的这个图片,
参数快照:点了crisis后再点heroes,然后再点crisis是回不去的。
参数订阅:可以一直切换下去
3)在路由时传递数据(3种方法)
a.在查询参数中传递数据:
/product?id = 1&name = 2 => ActivatedRoute.queryParams[id]
b.在路由的路径中传递数据:
{path:/product/:id} => /product/1 => ActivatedRoute.params[id]
c.在路由配置中传递数据
{path:/product,component;ProductComponent,data:[{isProd:true}] } => ActivateRoute.data[0][isProd]
4)路由重定向
添加一个redirect路由来把最初的相对路径('')转换成期望的默认路径(/home)。 浏览器地址栏会显示.../home,就像你直接导航到那里一样。
const routes:Routes = [ {path : '' , redirectTo:'/home' , pathMath : 'full'}, {path : 'home' , component: HomeComponent}, ] //把当前的路由重定向到home路由上
重定向路由需要一个pathMatch属性,来告诉路由器如何使用URL去匹配路由的路径,否则路由就会报错,因此要把pathMacth设置为'full'
Angular Route导航的更多相关文章
- Angular+Bootstrap3导航菜单
Angular+Bootstrap3导航菜单 AngularJS体验式编程系列文章,将介绍如何用angularjs构建一个强大的web前端系统.angularjs是由Google团队开发的一款非常优秀 ...
- 使用Angular Router导航基础
名称 简介 Routes 路由配置,保存着那个URL对应着哪个组件,以及在哪个RouterOulet中展示组件. RouterOutlet 在HTML中标记路由内容呈现位置的占位符指令. Router ...
- angular route 与 django urls 冲突怎么解决?
app.js var app = angular.module('app', [ 'ngResource', 'ngRoute', // 'ui.bootstrap', // 'ngResource' ...
- angular 实现导航ng-click切换
angular写的导航.自学angular已有一段时间. <!doctype html><html lang="en"><head> <m ...
- angular -- $route API翻译
$route -$routeProvider服务 -依赖ngRoute模块 $route能够在路径发生改变的时候,渲染不同的视图,调用不同的控制器.它监测了$location.url(),然后根据路径 ...
- 6、Angular Route 路由
1.没有嵌套路由 类似 ui-route 上述的html用红字标记的是必须导入的.这是因为:路由并不在ng2中,需要我们额外引入,另外我们需要设置base href,这是个什么东西呢?相当于我们后续所 ...
- Angular route传参
从 router-link-page1 跳转 router-link-page2 和 router-link-page3 通过自定义路由 设置router-link-page2的路由后有3个参数,pa ...
- [Angular] N things you might don't know about Angular Route
Prevent Partail Page display: By using Resolver: @Injectable() export class MovieResolver implements ...
- 基于angular的route实现单页面cnodejs
Angular ui-router 前言 之前不太理解前端怎么实现路由功能,以前知道有一种方式使用html5的pushState可以操作url才实现路由的功能,在实践项目中也用过一次,后来这种操作叫成 ...
随机推荐
- ecshop3.6商品如何按照销量排序
ecshop订单状态对应值:order_status有5中状态,并且当客户确认收货后,order_status的数值不一定是1也有可能是5.order_status = 0表示订单未确认order_s ...
- python 线程与进程
线程和进程简介 应用程序和进程以及线程的关系? 一个应用程序里可以有多个进程,一个进程里可以有多个线程 最原始的计算机是如何运行的? CPU是什么?为什么要使用多个CPU? 为什么要使用多线程? 为什 ...
- Neuron:Neural activities in V1 create a bottom-up saliency map
Neural activities in V1 create a bottom-up saliency map 本文证明了人类的初级视皮层可以在视觉信息加工的非常早期阶段,生成视觉显著图,用以引导空间 ...
- 读书笔记 effective c++ Item 47 使用traits class表示类型信息
STL主要由为容器,迭代器和算法创建的模板组成,但是也有一些功能模板.其中之一叫做advance.Advance将一个指定的迭代器移动指定的距离: template<typename IterT ...
- JavaWeb开发之HttpServletResponse
1. HttpServletResponse简介 Web服务器回送给Web客户端的HTTP响应消息分为三个部分:状态行,响应消息头,响应体. Servlet API中定义了ServletRespons ...
- DOM0 DOM2 DOM3
DOM0 DOM2 DOM3 DOM是什么 W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容.结构和样式. DOM 定义了访问 HTML 和 ...
- Android -- 带你从源码角度领悟Dagger2入门到放弃(二)
1,接着我们上一篇继续介绍,在上一篇我们介绍了简单的@Inject和@Component的结合使用,现在我们继续以老师和学生的例子,我们知道学生上课的时候都会有书籍来辅助听课,先来看看我们之前的Stu ...
- 关于Java内存管理的几个小技巧
这里将介绍几则Java内存管理的小技巧,让你让你从Java入门开始告别陋习,为Java程序提速.有不少人都说"Java完了,只等着衰亡吧!",为什么呢?最简单的的例子就是Java做 ...
- json数据渲染表单元素出现的问题
解析页面表单元素 parseForm: function () { var data = {}; $(this).find('input').each(function () { switch ($( ...
- [Git]06 如何提交空目录
git和 svn不同,仅仅跟踪文件的变动,不跟踪目录.所以,一个空目录,如果里面没有文件,即便 git add 这个目录,另外在别处 check out 的时候,是没有这个空目录的. 只跟踪文件 ...