Wie kann ich eine Routenänderung an einer untergeordneten Komponente erkennen ?. Dies ist, was ich versucht habe, aber ich sehe nur die App-Komponente die Route ändern. Ich möchte in der Lage zu erkennen, wenn die URL z. #/meta/a/b/c zu #/meta/a/b/c/d in der MetaDetailView-Komponente.Angular 2.0, Erkennen von Routenänderungen für untergeordnete Komponente
@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")
}
}
Dank Jesper
die funktionieren könnte (es wird versuchen Sie es später noch heute), aber keine Ahnung, warum es nicht funktioniert direkt mit Router? –
Ich denke, Sie erhalten nur eine richtige 'Router'-Instanz, die auf Komponenten injiziert wird, die am Routing teilnehmen. Was Sie jedoch versuchen könnten, ist '_router.rootsubscribe (...)'. –
Ich konnte das nur mit einem beobachtbaren globalen Dienst wie vorgeschlagen erreichen. Immer noch nicht verstehen, warum ich nicht direkt den Router auf der untergeordneten Komponente abonnieren kann. Ich habe diesen Artikel darüber gefunden, wie man einen beobachtbaren Dienst hinzufügt. https://coryrylan.com/blog/angular-2-observable-data-services –