当前位置: 首页 > 编程笔记 >

Angular2 (RC5) 路由与导航详解

桂智志
2023-03-14
本文向大家介绍Angular2 (RC5) 路由与导航详解,包括了Angular2 (RC5) 路由与导航详解的使用技巧和注意事项,需要的朋友参考一下

之前总结过RC4的路由配置,Angular2升级RC5之后增加了NgModule和RouterModule等等很多组件,所以现在的路由配置方式也变化比较大。

1.<base href>

大多数带路由的应用都要在 index.html 的 <head>标签下顶部添加一个<base>元素。

2.配置路由器

app.routing.ts

import { Routes, RouterModule } from '@angular/router';
const appRoutes: Routes = [
  {
    path: '',
    redirectTo: '/dashboard',
    pathMatch: 'full'
  },
  {
    path: 'heroes',
    component: HeroesComponent
  },
  {
    path: 'dashboard',
    component: DashboardComponent
  },
  {
    path: 'detail/:id',
    component: HeroDetailComponent
  }
]
export const routing = RouterModule.forRoot(appRoutes);

创建一个Routes类型数组,它会把每一个URL匹配到path,匹配成功则映射到该path对应的组件component上。
然后把这个路由数组appRoutes通过RouterModule.forRoot(appRoutes)导出。

3.引用路由

app.module.ts

import { routing } from './app.routing';

@NgModule({
  imports: [
    BrowserModule,
    routing
  ],
  declarations: [
    AppComponent
    // some component
  ],
  bootstrap: [ AppComponent ]
})
export class AppModule {}

就这样,我们在@NgModule的imports中引用了我们配置好的路由器。

4.在模板中使用路由

完成上面的2、3步骤,我们就能在模板中使用路由了

app.component.ts

template: `
   <nav>
     <a routerLink='/dashboard' routerLinkActive='active'>Dashboard</a>
     <a routerLink='/heroes' routerLinkActive='active'>Heroes</a>
   </nav>
   <router-outlet></router-outlet>
`

我们在<a>标签中添加了routerLink指令,可以一次性绑定到我们路由中的path值。
如果这个URL的path和routerLink匹配,就把映射到的组件在<router-outlet>中显示。

我们还可以往<a>中添加一个routerLinkActive指令,用于在相关的routerLink被激活时所在元素添加或移除CSS类。该指令可以直接添加到该元素上,也可以直接添加到其父元素上。

5.总结

在此,我们就完成了Angular2 (RC5)的路由配置。RC5和RC4的路由配置不同之处就在于, RC5的路由不需要在设置路由模板的TS文件导入路由库

import { ROUTER_DIRECTIVES } from '@angular/router';

直接在NgModule中引入配置好的路由就可以

@NgModule({
  imports: [
    routing
  ]
})

导入的路由组件由

import { provideRouter, RouterConfig } from '@angular/router';

变成了

import { Routes, RouterModule } from '@angular/router';

路由数组的导出方式由

export const appRouterProviders = [provideRouter(routes)];

变成了

export const routing = RouterModule.forRoot(appRoutes);

其他部分大体上都是相同的,比如路由的数组的配置写法、routerLink指令和<router-outlet>等等。详情见我写过的RC4的路由配置方式。

以上就是对Angular2 (RC5) 路由与导航的资料整理,后续继续补充相关资料,谢谢大家对本站的支持!

 类似资料:
  • 本文向大家介绍Angular2 (RC4) 路由与导航详解,包括了Angular2 (RC4) 路由与导航详解的使用技巧和注意事项,需要的朋友参考一下 基础知识 1.<base href> 大多数带路由的应用都要在 index.html 的 <head>标签下添加一个 <base>元素。 2.导入路由库 import { ROUTER_DIRECTIVES } from '@angular/rou

  • 路由管理 路由管理主要是为了实现页面切换。Flutter中,页面称为路由Router,由导航器Navigator控制,导航器维护一个路由栈,路由入栈(push)则打开新页面,路由出栈(pop)则关闭页面。Flutter中的页面切换就是导航器指挥路由入栈出栈的过程,即:Navigator来push/pop页面Route的过程。写写常用场景的demo。 页面跳转 核心方法:Navigator.push

  • 本文向大家介绍vue路由--网站导航功能详解,包括了vue路由--网站导航功能详解的使用技巧和注意事项,需要的朋友参考一下 1、首先需要按照Vue router支持 npm install vue-router 然后需要在项目中引入: 2、定义router的js文件 3、在main.js中引入router 4、入口页面定义router-view 5、在path指向为“/”的页面中,定义页面的布局,

  • 我目前有一个react应用程序,我正在工作,路由是错误的。我以前已经像这样设置了react应用程序及其路由,但是当试图路由到“details”组件时,只有url发生了变化,但是组件没有加载。多一双眼睛就能看到我错过了什么。我将路线设置为: < li>index.js: 根“/”路径组件加载,但我无法获取详细信息组件组件在使用history进行路由时呈现.

  • 本文向大家介绍Angular2 路由问题修复详解,包括了Angular2 路由问题修复详解的使用技巧和注意事项,需要的朋友参考一下 Angular2 提供了比angular1 更为强大的路由功能,但是在具体使用路由过程中,可是出现了很多路由不按照预想的方式执行的问题。为了说明今天的问题,我特地新建了一个测试工程。欢迎交流。 首先介绍一下测试代码的组织结构, 其中包含两个组件:button、acco

  • 用户可以在不登录的情况下访问我网站的某些部分。如果他们单击下载按钮并登录,下载会自动开始。但是,如果他们单击下载按钮但未登录,我想提示他们登录。一旦他们登录,我希望他们直接返回他们之前的路线。 当一个“匿名”用户单击下载按钮时,会给他们一个模式,并提示他们登录。如果他们决定登录,我会在本地存储中存储一些对象(是否认为ActivatedRouterSnapshot可以?)。登录后,我将检查本地存储中