ルートが変更され、新しいビュー(html)が置き換えられたときを検出したいと思っています。
コードの下を試してみましたが、さらに先に進む方法がわかりません。
this._routerSub = this.router.events
.filter(event => event instanceof NavigationEnd)
//.do(event => console.log(event)) //
.subscribe((value) => { });
以下のコードも試しましたが、エラーが発生しました
タイプイベントの引数は、タイプ '(value:Event)=> void'のパラメーターに割り当てることができません。
import { Router, NavigationEnd, Event } from '@angular/router';
this._routerSub = this.router.events
.subscribe(event : Event) => {
if (event instanceof NavigationEnd) {
console.log(event.url);
}
});
以下のベガは私のapp.component.tsとapp.component.tsコードです。アクティベート時にonActivateを呼び出すことは想定されていませんか。新しいコンポーネントがインスタンス化されているときはいつでも、ルーターアウトレットはアクティブ化イベントを発行します。
app.component.html
<router-outlet (activate)="onActivate($event)" ></router-outlet>
app.component.ts
onActivate(e) {
debugger;
console.log(1);
}
ルーターアウトレットで公開されたactivate
イベントを使用する方法:
<router-outlet (activate)="onActivate($event)"></router-outlet>
onActivate(e) {
console.log(e.constructor.name);
//etc... you can access to a lot of other information
}