触发路由器停用事件时,获取链接的URL

时间:2016-11-04 06:05:56

标签: angular angular2-routing

是否可以传递路由器停用事件被触发时单击的路由的URL? 我有像这样的停用gaurd

import { Injectable }    from '@angular/core';
import { CanDeactivate}  from '@angular/router';
import { Observable }    from 'rxjs/Observable';
export interface CanComponentDeactivate {
 canDeactivate: () => Observable<boolean> | Promise<boolean> | boolean;
}
@Injectable()
export class CanDeactivateGuard implements CanDeactivate<CanComponentDeactivate> {
constructor(public activeroute:ActivatedRoute){

}
canDeactivate(component: CanComponentDeactivate) {
return component.canDeactivate ? component.canDeactivate(URL) : true;
}
}

我的组件中的deactivate事件如下所示 canDeactivate(Url:any) { console.log(Url); return false; } 我在这里做了一个plunker演示http://plnkr.co/edit/0zLwIoUK7hxm5qZWzsye?p=preview,我可以点击链接的网址,但是它显示类型错误,如Property _futureSnapShot Doesnot exist on type ActivatedRoute。是否有任何好的做法来获取路线的网址是触发路由器停用事件时单击。

1 个答案:

答案 0 :(得分:0)

我认为您可以通过在构造函数中注入router.events来使用router: Router

router.events.subscribe((val) => {
    console.log(val);         
});

val将包含该路线的网址。

希望这有帮助。