2016-10-18 6 views
1

の状態を持っていないです私のapp.routesAngular2ルータは:なぜ私たちはもうここでルート

const routes: Routes = [ 
    { 
     path: "login", 
     component: LoginComponent 
    }, 
    { 
     path: "users", 
     component: UsersComponent 
    }, 
    { 
     path: "error", 
     component: ErreurComponent 
    }, 
    { 
     path: "more/complex/path", 
     component: FooComponent 
    }, 
    { 
     path: "", 
     component: HomepageComponent, 
    } 
] 

export const APP_ROUTER_MODULE = RouterModule.forRoot(routes) 

は、なぜ私は私のルートの状態または名前を指定することはできませんか?私がエラーページにいるかどうかを知りたい場合は、現在のルートを確認し、「パス」で指定した内容を調べる必要があります(上記のFooComponentも参照してください)。私はこれが少し愚かであることが分かった。これを回避する方法はありますか?

+0

を参照してくださいあなたは 'data'を渡すことができます。 –

+0

ええ、私の悪いあなた、私は間違ったデータを見ていた。ありがとうございました – Scipion

答えて

1
const routes: Routes = [ 
    { 
     path: "login", 
     component: LoginComponent, 
     data: { name: 'r1'} 
    }, 
    { 
     path: "users", 
     component: UsersComponent, 
     data: { name: 'r2'} 
    }, 
    { 
     path: "error", 
     component: ErreurComponent, 
     data: { name: 'r3'} 
    }, 
    { 
     path: "more/complex/path", 
     component: FooComponent, 
     data: { name: 'r4'} 
    }, 
    { 
     path: "", 
     component: HomepageComponent, 
     data: { name: 'r5'} 
    } 
] 
class SomeComponent { 
    constructor(route:ActivatedRoute) { 
    route.data.forEach(data => console.log(data['name'])); 
    } 
} 

How do I pass data in Angular 2 components while using Routing?

+0

そのビット コンストラクタ(ルート:ActivatedRoute){ route.data.forEach(data => console.log(data ['name'])); } は外部サービスで使用しますか? – Scipion

+0

「外部サービス」とは何を意味するのかよく分かりませんが、ガードを使用できます(例:https://angular.io/docs/ts/latest/guide/router.html#!#guards –

+0

)。私はこのデータ['名']情報を得ることができるすべてのモジュールのコンポーネントに共通するものを持つことが可能です。 – Scipion

関連する問題