gpt4 book ai didi

javascript - Angular:如何检测当前组件中的路由变化?

转载 作者:行者123 更新时间:2023-12-05 03:43:40 26 4
gpt4 key购买 nike

我想检测当前组件的路由并尝试了类似的方法。但它会在每条路线开始和结束时触发。取而代之的是,当来自此 DetailsComponent 的路由发生变化时,我如何检测路由变化?

export class DetailsComponent {

constructor(private router: Router) {

this.router.events.subscribe((event: Event) => {
if (event instanceof NavigationStart) {
}

if (event instanceof NavigationEnd) {
}
});

}
}

我需要在从此 DetailsComponent 导航时获取 url 并在 url 不是 /employees 时进行操作。

最佳答案

继续检测到您的事件的原因是,当您的 DetailsComponent 被销毁时,您没有取消订阅 router.events

如果您只是取消订阅,它应该适合您:

export class DetailsComponent {
private sub = this.router.events
.pipe(
filter(event => event instanceof NavigationStart),
map(event => event as NavigationStart), // appease typescript
filter(event => event.url !== '/employees')
)
.subscribe(
event => console.log('[DetailsComponent] NOT going to "/employees"!', event)
);

constructor(private router: Router) { }

ngOnDestroy() {
console.log('>> STOP listening to events for DetailsComponent');
this.sub.unsubscribe();
}

}

这是一个 StackBlitz示例。

关于javascript - Angular:如何检测当前组件中的路由变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66705251/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com