2016-04-27 13 views
1

をルーティング現在、私が持っている:- Angular2

import { Router } from 'angular2/router'; 

@Component({...}) 

export class Index { 
    constructor(public router: Router) { 
    this.router.subscribe({...}); 
    } 
} 

あり、このコンポーネントの他の機能がありますが、それらは私が入れて試してみました問題

には関係ありませんデバッガとconsole.log()はサブスクライブ関数には含まれていますが、何をするにしても何も起こりません。私は同じ結果でrouter.subscribe()をngOnInit()に移動しようとしました。何もない。

「アカウント」から「ユーザー」などにリソースを切り替え、URLの状態に基づいて適切なAPI呼び出しを行う必要があります。現在、私はなぜこれがうまくいかないのかわかりません。私が紛失していることは明らかですか?ルータに複数回加入する際に制限がありますか?私はすでに別のコンポーネントでそれをやっていますし、正常に動作しています。

答えて

0

私はあなたが

this.router.root.subscribe({...}); 

は、すべてのルートナビゲーションイベントを取得したいと思います。

+0

これは、ありがとうございます!しかし、それは小さな問題を引き起こします。今は、サイトの1つのセクション内のパスを変更するときだけでなく、変更があるたびにルータに加入しています。 –

+0

'this.router.parent.subscribe()'を試すことができますが、コンポーネントが入れ子のレベルに依存するため、これはやや脆いです。ルータはとにかく大きな変更の対象となります。それがあなたのために働くなら、私はそれを求めて、更新されたルータが利用可能になったときに再訪します。 –

+0

私のコンポーネントの親ルータはルートルータなので、あまり役に立ちません。あなたは他のコンポーネントで利用可能なルートルータへのサブスクリプションを作るための方法を知っていますか?ルータに複数回加入することを避けたい –