将属性添加到 angular2 中的路由

DNR*_*NRN 3 angular2-routing angular

我想知道是否可以向 RouteConfig 装饰器中定义的路由添加自定义属性。

我想添加任何需要身份验证的路由:

@RouteConfig([
  {
    path: "/login",
    name: "Login",
    component: LoginComponent,
    authenticate: false,
  },
  {
    path: "/home",
    name: "Home",
    component: HomeComponent,
    authenticate: true
  }
])
Run Code Online (Sandbox Code Playgroud)

如果这是可能的,我如何在组件中获取值“authenticate”?

Thi*_*ier 5

我认为您可以利用接口的data属性RouteDefinition

@RouteConfig([
  {
    path: "/login",
    name: "Login",
    component: LoginComponent,
    data: {
      authenticate: false
    }
  },
  {
    path: "/home",
    name: "Home",
    component: HomeComponent,
    data: {
      authenticate: true
    }
  }
])
Run Code Online (Sandbox Code Playgroud)

它的类型,any所以你可以把你想要的东西放进去(见https://github.com/angular/angular/blob/master/modules/angular2/src/router/route_definition.ts#L25):

export interface RouteDefinition {
  path?: string;
  aux?: string;
  component?: Type | ComponentDefinition;
  loader?: Function;
  redirectTo?: any[];
  as?: string;
  name?: string;
  data?: any;
  useAsDefault?: boolean;
}
Run Code Online (Sandbox Code Playgroud)

  • 找到了!“RouteData”有魔力 :) 来自这篇文章:http://www.syntaxsuccess.com/viewarticle/routing-in-angular-2.0 (2认同)