Angular 2路由器示例+ @Routes打字支持

doo*_*man 23 typescript angular

我试图找到一个关于如何在Angular 2中使用路由器的具体示例.此外,5分钟快速入门中的当前angular2.d.ts类型文件 不支持@Routes注释.

vir*_*der 8

Angular 2中的主要组件和路由类.

router-link - router-link指令用于声明链接到视图.它也可以包含可选参数.

示例:

<a [router-link]="['/AboutUs']">About Us</a>
Run Code Online (Sandbox Code Playgroud)

router-outlet - 它作为占位符,用于渲染然后组件的视图.意味着模板和templateUrl将在您将使用router-outlet指令的位置呈现.

示例:

<router-outlet></router-outlet>
Run Code Online (Sandbox Code Playgroud)

@RouteConfig - 我们将URL映射到本节中使用的组件.

示例:

@RouteConfig([
    {path: '/',        component: HomeComponent, as: 'Home'},
    {path: '/aboutus', component: AboutUsComponent, as: 'AboutUs'  }
    {path: '/contactus', component: ContactUsComponent, as: 'ContactUs'  }
])
Run Code Online (Sandbox Code Playgroud)

RouteParams - 路由器呈现的组件的参数.

阅读这篇文章了解更多信息http://www.codeandyou.com/2015/11/understand-routing-in-angular-2.html


shm*_*mck 7

一个有用的Angular 2路由器示例.具体代码可以在这里找到.

  • 这是使用不推荐的路由.这不是一个好例子. (4认同)

Par*_*ain 7

Angular2中的基本路由(已更新至Beta)

首先在angular2中设置路由,你必须在主文件index.html中导入路由器文件,即

<script src="node_modules/angular2/bundles/router.dev.js"></script>
Run Code Online (Sandbox Code Playgroud)

比我们必须在index.html中添加标签<base href="/"><head>告诉路由器如何组成导航URL.通过这样做,我们只需设置角度路由的基本配置.

现在是时候配置路由了,根据需要设置我们的路由器,基本上我们需要三个基本的东西 -

  • routerLink
  • 路由器出口
  • 和@RouteConfig

routerLink -

RouterLink期望该值是路由名称数组,后跟该路由级别的参数.

引自官方的话

第一个路由名称应该以/,./或../为前缀.如果路由以/开头,路由器将从应用程序的根目录查找路由.如果路由以./开头,则路由器将查找当前组件的子路由.如果路由以../开头,路由器将查看当前组件的父节点

我们这样定义routerLink -

<a [routerLink]="['./HomeCmp']">Hello Routing</a>
Run Code Online (Sandbox Code Playgroud)

这里我们可以提供参数以及可选的路由,也可以从这里提供子路由.像这样的参数 -

<a [routerLink]="['./HomeCmp', {key : value}]">Hello Routing</a>
Run Code Online (Sandbox Code Playgroud)

路由器出口

路由器插座是占位符,其中路由数据将显示在显示器上.还存在另一种类型的路由器插座,称为aux route.可以像这样使用 -

 <router-outlet></router-outlet>
Run Code Online (Sandbox Code Playgroud)

@RouteConfig

在routConfig上存在各种属性,例如路径,名称,组件等.当浏览器的URL发生更改时,路由器会查找相应的RouteDefinition,从中可以确定要显示的组件.

  • path - 用于定义whihc在浏览器的地址栏中显示为url.

  • name - 在定义routerLink名称时应该用作名称.

  • component - 表示在此路由处于活动状态时加载的组件.

  • useDefaultAs - 如果我们想将此设置为默认路由,则设置为true.

例子是 -

@RouteConfig([
  {path:'/crisis-center', name: 'CrisisCenter', component: CrisisListComponent, useDefaultAs : true}
])
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请参阅 -

儿童路线也参见 -

更新到ANGULAR2 RC

RC中的路由有很多变化在RC之后,其中一些点我在这里提到可以帮助某人: -

  1. angular2/router已更改@angular/router (也可以使用导入的旧功能,@angular/router-deprecated但现在我们必须使用@angular/router).

  2. @RouteConfig已经改变了@Routes.

例如 :-

@Routes([
  {path: '/crisis-center', component: CrisisListComponent},
  {path: '/heroes',        component: HeroListComponent}
])
Run Code Online (Sandbox Code Playgroud)

休息生病很快就会根据更新日志中的更新更新我的答案.


Ela*_*atz 5

到目前为止我见过的最好的是 https://github.com/angular-class/angular2-webpack-starter(它也与webpack一起使用 - 值得努力恕我直言)此外,它也支持TypeScript.

另外,基于最后一个链接是我的启动器,可以在这里找到 - https://github.com/EladRK/angular-starter