angularcli 第八篇(router 路由)
更多详细:https://segmentfault.com/a/1190000009265310
一、标题:页面有两个按钮(test1、test2),点击这两个按钮,跳转相应页面~
注:可直接创建一个带路由模块的项目:ng new project --routing (下面针对新建项目时没有带路由,后边再来新建路由)
1、新建两个页面 test1、test2(html、css、ts): ng g component test1
在app.modules.ts(模块)中:
(1)导入根组件,以及相应子组件(test1、test2)
(2)添加相应路由组件 import { AppRoutingModules } from "./app/routing";
(3)初始化路由器imports: [ RouterModule.forRoot(routes) ],用于在主模块中定义主要的路由信息
2、在app.component.html中添加相应的跳转按钮,以及路由路径
3、路由配置:新建路由模块 app.routing.ts(配置文件) : ng generate module app-routing --flat --module=app
- import 根组件、子组件、路由组件;
- 编写路由路径 const routes;
方法:
const routes: Routes = [
// path:路径 component:组件
{ path: 'news', component: Newsomponent },
{ path: 'detail/:id', component: DetailComponent }, // 带参数 { path: 'other', loadChildren:"./other/other.module#otherModule" },// 懒加载子模块, 子模块需要配置路由设置启动子组件
{ path: '**', pathMatch: 'full', redirectTo: '' } // 重定向
];
/index
设置页面下有 /index/testUrl1
和 /index/testUrl2
两个页面,分别表示个人资料页和修改密码页。
我们可能希望我们的 / settings
页面拥有自己的组件,然后在设置页面组件中显示 / settings/profile
和 / settings/password
页面。我们可以这样做:
在这里,我们在 setttings
路由中定义了两个子路由,它们将继承父路由的路径,因此修改密码页面的路由匹配地址是 /settings/password
,依此类推。
接下来,我们需要在我们的 AppComponent(index)
组件中添加 router-outlet
指令,因为我们要在设置页面中呈现子路由。
二、链接及访问
<a routerLink="/detail/test1" routerLinkActive="active">detail</a>
<a [routerLink]="['/detail', news.id]">{{news.title}}</a> //路由中传参数
<a [routerLink]="[{ outlets: { let2: ['news'] } }]">Contact</a>即在本路由激活时添加样式
//注:routerLinkActive="active".active
或
import { Router } from '@angular/router';
// ...
constructor(private router: Router) {} // ...
this.router.navigate(['/detail', {queryParams:item}]); //路由中传参数(多个参数)
this.router.navigate({'/detail',news.id}); //一个参数
this.router.navigate([{ outlets: { let2: null }}]);
} 注:navigateByUrl 方法指向完整的绝对路径
传参之后的接收方法:
1.snapshot
import { ActivateRoute } from '@angular/router'; constructor( public route: ActivateRoute ) { };
ngOnInit(){
this.data = this.route.snapshot.params['id'];
};
2.queryParams
import { ActivateRoute } from '@angular/router'; constructor( public activeRoute:ActivateRoute ) { };
ngOnInit(){
this.activeRoute.queryParams.subscribe(params => {
console.log(params);
});
};
angularcli 第八篇(router 路由)的更多相关文章
- 第三十八篇:vue3路由
好家伙,水博客怎么说 1.0.安装:简简单单的淘宝镜像安装 装一下淘宝镜像(一般都有) npm install -g cnpm --registry=https://registry.npm.taob ...
- 前端MVC Vue2学习总结(八)——Vue Router路由、Vuex状态管理、Element-UI
一.Vue Router路由 二.Vuex状态管理 三.Element-UI Element-UI是饿了么前端团队推出的一款基于Vue.js 2.0 的桌面端UI框架,手机端有对应框架是 Mint U ...
- Python之路【第十八篇】:Web框架们
Python之路[第十八篇]:Web框架们 Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Pytho ...
- Flask最强攻略 - 跟DragonFire学Flask - 第八篇 实例化Flask的参数 及 对app的配置
Flask 是一个非常灵活且短小精干的web框架 , 那么灵活性从什么地方体现呢? 有一个神奇的东西叫 Flask配置 , 这个东西怎么用呢? 它能给我们带来怎么样的方便呢? 首先展示一下: from ...
- 全面解析JavaScript的Backbone.js框架中的Router路由
这篇文章主要介绍了Backbone.js框架中的Router路由功能,Router在Backbone中相当于一个MVC框架中的Controller控制器功能,需要的朋友可以参考下. Backbone ...
- VueRouter爬坑第二篇-动态路由
VueRouter系列的文章示例编写时,项目是使用vue-cli脚手架搭建. 项目搭建的步骤和项目目录专门写了一篇文章:点击这里进行传送 后续VueRouter系列的文章的示例编写均基于该项目环境. ...
- flask 第八篇 实例化flask时的参数配置
Flask 是一个非常灵活且短小精干的web框架 , 那么灵活性从什么地方体现呢? 有一个神奇的东西叫 Flask配置 , 这个东西怎么用呢? 它能给我们带来怎么样的方便呢? 首先展示一下: from ...
- VueRouter爬坑第四篇-命名路由、编程式导航
VueRouter系列的文章示例编写时,项目是使用vue-cli脚手架搭建. 项目搭建的步骤和项目目录专门写了一篇文章:点击这里进行传送 后续VueRouter系列的文章的示例编写均基于该项目环境. ...
- Angular 从入坑到挖坑 - Router 路由使用入门指北
一.Overview Angular 入坑记录的笔记第五篇,因为一直在加班的缘故拖了有一个多月,主要是介绍在 Angular 中如何配置路由,完成重定向以及参数传递.至于路由守卫.路由懒加载等&quo ...
随机推荐
- 【jmeter】使用jmeter进行测试-示例
介绍 jmeter主要用于负载测试,详细信息可以参见Google. 这里使用一个简单的示例,来介绍jmeter的使用. 涉及的功能点包括: HTTP HEADER配置 HTTP Request配置 J ...
- 中国大互联网公司在github上的开源项目
公司名 账号数 账号名 总项目数 非fork项目数 百度 13 baidu.ApolloAuto. brpc. mipengine.Clouda-team.mesalock-linux. ecomfe ...
- jzy3D从入门到弃坑_4尝试使用jzy3D1.0画图失败
jzy3D从入门到弃坑_4 尝试使用jzy3D1.0画图失败 觉得有用的话,欢迎一起讨论相互学习~Follow Me 记录一下使用jzy3D1.0失败 究其原因在于 本人才疏学浅,对于JAVA ope ...
- Spark Streaming反压机制
反压(Back Pressure)机制主要用来解决流处理系统中,处理速度比摄入速度慢的情况.是控制流处理中批次流量过载的有效手段. 1 反压机制原理 Spark Streaming中的反压机制是Spa ...
- bladex-boot推送harbor出错
出错信息: Building image harbor.zhangshuiqing.com:8081/blade/Bladex-boot:2.2.1.release十二月 13, 2019 11:22 ...
- Ubuntu上使用Docker打包镜像
关于这个一开始会有点懵,直白一点就是,把本地路径下的代码放到docker里面去,然后在docker这个隔离环境中运行调用我们的程序.专业解释请自行检索学习. 第一步:创建容器 docker run - ...
- Linux系统下的SSH 使用总结
对于linux运维工作者而言,使用ssh远程远程服务器是再熟悉不过的了!对于ssh的一些严格设置也关系到服务器的安全维护,今天在此,就本人工作中使用ssh的经验而言,做一些总结记录来下. -bash: ...
- 前端向后端获取数据的三种方法:ajax、axios、fetch
1.jQuery中的ajax get方法: $.ajax({ url:"v4/api/film/now-playing?t=1539401039415&page=1&coun ...
- Hyperledger Fabric 入门 first-network 搭建
1.准备环境: 安装git.docker.curl.go [root@test_vonedao_83 fabric]# git --version git version 1.8.3.1 [root@ ...
- 前端中常见字节编码(base64、hex、utf8)及其转换
/* * 字节编码转换 * 首先都需要转为二级制数组 (ArrayBuffer) * 然后才能转换对应的编码字符 * 前端常见编码: * base64:就是将二进制转为字符串,将每6个字节转为一个特定 ...