2016-07-29 5 views
1

Angular 2 ComponentからRouterConfigにアクセスするための好ましい方法は何ですか?現在のルートのすべての子ルートを調べたいと思います。Component(Angular2 RC4)からRouterConfigにアクセスする方法

私が思い付くことは、ActivatedRouteSnapshot(_routeConfig)のプライベートメンバー変数にアクセスすることです。しかし、それは変更される可能性があるので、むしろそれを使用しないでください。あなたが使用して完全なルータツリーにアクセスすることができます

export class MyComponent{ 

    constructor(private _router: Router, 
      private _route: ActivatedRoute) 
    { 

    } 

    private findChildRoute(componentPath : string){ 
    let matchingRoute = (<any>this._route.snapshot)._routeConfig.children.find((T) => T.path == componentPath); 
    return matchingRoute; 
    } 
} 

答えて

0

は、以下のコードを参照してください。

this.router.routerState // tree of activated routers 

今、あなたはActivatedRoute

constructor(private router:Router, private currentActivatedRoute:ActivatedRoute) 
// this should be called in ngOnInit 
    var state = this.router.routerState 
    var children = state.children(this.currentActivatedRoute) 

RouterStateすべての子のルートの状態を見つけるために子供を使用することができ、Tree

+0

これは有用であったが、完全に質問に答えていません。あなたの提案は、親コンポーネントから定義されたすべての子ルートを返すわけではありません。代わりに、唯一のアクティブな子ルートを持つ配列を返します。 – noxborough

関連する問題