mar*_*den 7 javascript typescript angular
我正在尝试对任何NavigationEnd路由器事件触发操作,除非在 a) 子路由之间导航;b) 在另一条特定路线上。
这是我的一部分app.routing.ts:
// some other routes setup...
{ path: 'scrapers/:version', component: SingleScraperComponent, children: [
{ path: '', redirectTo: 'statistics', pathMatch: 'full' },
{ path: 'statistics', component: ScraperStatisticComponent },
{ path: 'targets', component: ScraperTargetsComponent },
]},
// some other routes setup...
Run Code Online (Sandbox Code Playgroud)
这是我的Router活动订阅SingleScraperComponent:
// some component code
ngOnInit(): void {
this._router.events.filter(event => event instanceof NavigationEnd).takeWhile(() => this.isAlive).subscribe(
(event: NavigationEnd) => {
console.log(event);
if (event.url.indexOf('site-preview') === -1) {
this._site.resetQuery();
}
}
);
}
// some component code
Run Code Online (Sandbox Code Playgroud)
我也可以使用OnDestroy,但我需要知道SingleScraperComponent销毁后的下一条路线。
mar*_*den 10
好的,我已经使用routerState快照来验证下一条路线:
ngOnDestroy(): void {
if (this._router.routerState.snapshot.url.indexOf('site-preview') > -1) {
console.log('Hello, from needed route!');
}
}
Run Code Online (Sandbox Code Playgroud)
但是,如果有更清晰的方法,我将不胜感激。
| 归档时间: |
|
| 查看次数: |
2838 次 |
| 最近记录: |