子コンポーネントのルート変更を検出するにはどうすればよいですか。 これは私が試したことですが、アプリコンポーネントがルート変更をトレースするだけです。 URLがいつ変更されたかを検出することができます。 MetaDetailViewコンポーネントの#/ meta/a/b/cから#/ meta/a/b/c/dに移動します。角度2.0、子コンポーネントのルート変更を検出する方法
@RouteConfig([
{ path: '/', name: 'Home', redirectTo: ['Meta']},
{ path: '/meta/...', name: 'Meta', component: MetaMainComponent, useAsDefault: true},
...other routes...,
])
export class AppComponent {
constructor(private _router: Router) {
_router.subscribe((url) => console.log("app.url = " + url));
}
}
@RouteConfig([
{ path: '/*other', name: 'Detail', component: MetaDetailViewComponent, useAsDefault: true},
])
export class MetaMainComponent {
constructor(private _router: Router) {
_router.subscribe((url) => console.log("metamain.url = " + url));
console.log("MetaMainComponent")
}
}
export class MetaDetailViewComponent {
constructor(private _router: Router) {
_router.subscribe((url) => console.log("metadetail.url = " + url));
console.log("MetaDetailViewComponent")
}
}
おかげ ジェスパー
働くかもしれない(今日後でそれをしようとします)が、それは直接動作しない理由を任意のアイデアをルータとは? –
私はルーティングに参加しているコンポーネントに適切な 'Router'インスタンスを注入するだけです。あなたが試みることができるのは '_router.root.subscribe(...)'です。 –
私は、このように、観測可能なグローバルサービスを提案して使用することしかできませんでした。子コンポーネントのルーターに直接購読できない理由はまだ分かりません。 この記事では、観測可能なサービスを追加する方法について説明しました。 https://coryrylan.com/blog/angular-2-observable-data-services –