angular4路由基础运用
来源:互联网 发布:单片机原理及 编辑:程序博客网 时间:2024/06/11 14:50
1.base href> 元素
大多数带路由的应用都要在index.html
的<head>
标签下先添加一个<base>
元素,来告诉路由器该如何合成导航用的URL。
如果app
文件夹是该应用的根目录(就像我们的范例应用一样),那就把href
的值设置为下面这样:
<base href="/">
2.从路由库中导入
Angular的路由器是一个可选的服务,它用来呈现指定的URL所对应的视图。 它并不是Angular核心库的一部分,而是在它自己的@angular/router
包中。 像其它Angular包一样,我们可以从它导入所需的一切。
import { RouterModule, Routes } from '@angular/router';
3.
每个带路由的Angular应用都有一个Router
(路由器)服务的单例对象。 当浏览器的URL变化时,路由器会查找对应的Route
(路由),并据此决定该显示哪个组件。
路由器需要先配置才会有路由信息。 下面的例子创建了四个路由定义,并用RouterModule.forRoot
方法来配置路由器, 并把它的返回值添加到AppModule
的imports
数组中。
const appRoutes: Routes = [
{ path: 'crisis-center', component: CrisisListComponent },//path后面不能有/斜杠
{ path: 'hero/:id', component: HeroDetailComponent },
{
path: 'heroes',
component: HeroListComponent,
data: { title: 'Heroes List' }
},
{ path: '',
redirectTo: '/heroes',
pathMatch: 'full'
},
{ path: '**', component: PageNotFoundComponent }
];
@NgModule({
imports: [
RouterModule.forRoot(
appRoutes,
{ enableTracing: true } // <-- debugging purposes only
)
// other imports here
],
...
})
export class AppModule { }
4.
这里的路由树组appRoutes
描述如何进行导航。 把它传给RouterModule.forRoot
方法并传给本模块的imports
数组就可以配置路由器。
每个Route
都会把一个URL的path
映射到一个组件。 注意,path
不能以斜杠(/
)开头。 路由器会为解析和构建最终的URL,这样当我们在应用的多个视图之间导航时,可以任意使用相对路径和绝对路径。
路由出口
有了这份配置,当本应用在浏览器中的URL变为/heroes
时,路由器就会匹配到path
为heroes
的Route
,并在宿主视图中的RouterOutlet
之后显示HeroListComponent
组件。
<router-outlet></router-outlet><!-- Routed views go here -->
5.路由器链接
template: `<h1>Angular Router</h1>
<nav>
<a routerLink="/crisis-center" routerLinkActive="active">Crisis Center</a>
<a routerLink="/heroes" routerLinkActive="active">Heroes</a>
</nav>
<router-outlet></router-outlet>
`
6.其他用法
一、
import { Component } from '@angular/core';
@Component({
template: `
<h2>HEROES</h2>
<p>Get your heroes here</p>
<button routerLink="/sidekicks">Go to sidekicks</button>
`
})
export class HeroListComponent { }
二、
constructor(
private router: Router,
private service: HeroService
) {}
template: `
<h2>HEROES</h2>
<ul class="items">
<li *ngFor="let hero of heroes | async"
(click)="onSelect(hero)">
<span class="badge">{{ hero.id }}</span> {{ hero.name }}
</li>
</ul>
<button routerLink="/sidekicks">Go to sidekicks</button>
`
onSelect(hero: Hero) {
this.router.navigate(['/hero', hero.id]);
}
- angular4路由基础运用
- angular4基础之路由
- angular4路由
- Angular4 路由设置相关
- Angular4 路由 实战
- angular4子路由&辅助路由
- Angular4-在线竞拍应用-路由
- angular4学习指南(二)路由
- angular4路由1(路由传递参数)
- angular4.0基础&&demo
- Angular4.0路由导航简单介绍
- angular4 路由实际使用中的应用场景
- Angular4学习笔记(三)- 路由
- Angular4 第三章(下)路由守卫
- Angular4
- Angular4
- Angular4记账webApp练手项目之三(在angular4项目中使用路由router)
- Angular4.0之路由传递数据的三种方式
- 地宫取宝 (dfs+dp深搜)
- UVA1640TheCountingProblem
- 练习1-2 做个实验,当printf函数的参数字符串中包含\c(其中c是上面的转义字符未曾列出的某一个字符)时,观察一下输出
- JavaScript 资源大全中文版
- python的学习
- angular4路由基础运用
- dubbo-1
- 巧妙的实现多个进程同时跑的问题~买票系统
- 小白的蚁群算法学习总结
- 你家的小程序那么优秀,快来这里进行海量曝光!小程序推广
- Python中的逻辑运算符‘and’、‘or’和‘not’
- $a=58 发生了什么?
- Java —— 正则表达式
- Jersey 常用的resultful 风格的标签注解