Javascript 角度:如何检测当前组件中的布线更改?

Javascript 角度:如何检测当前组件中的布线更改?,javascript,angular,typescript,routes,angular-ui-router,Javascript,Angular,Typescript,Routes,Angular Ui Router,我想从当前组件检测路由,并尝试了类似的方法。但它在每条路线的起点和终点都会触发。相反,当来自此详细信息组件的路由更改时,如何仅检测路由更改 export class DetailsComponent { constructor(private router: Router) { this.router.events.subscribe((event: Event) => { if (event instanceof NavigationS

我想从当前组件检测路由,并尝试了类似的方法。但它在每条路线的起点和终点都会触发。相反,当来自此
详细信息组件的路由更改时,如何仅检测路由更改

export class DetailsComponent {

    constructor(private router: Router) {

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

            if (event instanceof NavigationEnd) {
            }
        });

   }
}

我需要在此
详细信息组件导航时获取url,如果url不是
/employees
则需要执行操作。继续检测事件的原因是,您没有从
路由器取消订阅。当您的
详细信息组件
被销毁时,会发生事件

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

导出类详细信息组件{
private sub=this.router.events
.烟斗(
过滤器(事件=>NavigationStart的事件实例),
映射(事件=>作为导航开始的事件),//安抚类型脚本
过滤器(event=>event.url!='/employees')
)
.订阅(
event=>console.log(“[DetailsComponent]不去“/employees”!”,事件)
);
构造函数(专用路由器:路由器){}
恩贡德斯特罗(){
log('>>停止侦听DetailsComponent的事件);
此.sub.取消订阅();
}
}

这里有一个例子。

其他人知道这个路由问题吗?是否不可能只检测当前组件的路由更改?非常感谢,我意识到了这一点,并按照您的建议取消了订阅。另一方面,我无法使用
this.router
Location
获取以前的url。可能吗?我只需要在进入此详细信息页面之前获取previos url。