0
子ルータのすべてのURLが変更されたときにイベントを発生させるにはどうすればよいですか? 以下のコードのように、ルートルーターのURL変更のイベントを発生させるために実装できますが、子ルーターにはできません。ルータが子ルータでサブスクライブする
私はrouter-deprecatedとAngular2 betaを使用していますが、RCでは使用していません。
// myapp.component.ts
@RouteConfig([
{
useAsDefault: true,
name: 'Main',
path: '/...',
component: MainComponent,
},
])
export class MyAppComponent {
constructor(private _router: Router) {
_router.subscribe((url: string): void => {
// Fire on every URL change
// e.g. URL "/" to "/sub1", "/sub1" to "/sub2"
});
}
}
// main.component.ts
// URL:/
@RouteConfig([
{
useAsDefault: true,
name: 'Sub1',
path: '/sub1',
component: Sub1Component,
},
{
name: 'Sub2',
path: '/sub2',
component: Sub2Component,
},
])
export class MainComponent {
constructor(private _router: Router) {
_router.subscribe((url: string): void => {
// Does not fire...
});
}
}
// sub1.component.ts
// URL: /sub1
export class Sub1Component {}
// sub2.component.ts
// URL: /sub2
export class Sub2Component {}
(もちろん、私は上記にimport
構文とデコレーターを省略。)
なぜあなたは子供の中で同じことをすることができませんか?間違いはありますか? –
は 'router.location()'を使って行い、URLの変更に応じてアクションを実行します。 –
Plunkerしてください! – micronyks