向angular2中的路由添加属性

Add properties to routes in angular2

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

我想添加路由是否需要身份验证:

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

如果可以的话,如何获取组件中的值"authenticate"?

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

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

它是 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;
}