如何使用angular2指令中的选项获取当前路线

如何使用angular2指令中的选项获取当前路线,angular,angular2-routing,angular2-directives,Angular,Angular2 Routing,Angular2 Directives,我正在寻找一种方法来访问已加载的路由 在最初情况下,路由更改可以通过路由器事件进行订阅,如下所示: @Directive({ selector: '[myDirective]' }) export class TestDirective { constructor(private _router: Router) { this.doAction() } doAction(): void { this._router.events

我正在寻找一种方法来访问已加载的路由

在最初情况下,路由更改可以通过路由器事件进行订阅,如下所示:

@Directive({ selector: '[myDirective]' })
export class TestDirective {

    constructor(private _router: Router) {
        this.doAction()
    }


    doAction(): void {
        this._router.events
            .filter((event: Event) => event instanceof NavigationEnd)
            .subscribe(event => {
                /// ... get current route data
            })
        }

    }
}
主要问题是如何在subscribe()中获取当前路由数据


在angular 2文档中,未找到搜索结果。

我有一个解决您问题的方法,请尝试此方法

import { Router, ActivatedRoute } from '@angular/router';

currentRoute:any;

constructor(private router: Router, private activatedRoute: ActivatedRoute,) {}


  ngOnInit() {
    this.router.events.subscribe((url) => {
      this.currentRoute = url;
      console.log(this.currentRoute);
    });
  }
你会得到一个像贝娄一样的控制台

从查询参数获取值

import { Router, Route, ActivatedRoute } from '@angular/router';

queryParams:string;

constructor(private router: Router, private actRoute: ActivatedRoute) 
{
    this.queryParams=
    this.router.routerState.snapshot.root.queryParams["oauth_token"];
}
使用此选项,您将获得queryParams的oauth_令牌的值。我觉得这对你来说很好


注意:您的url将类似于

我希望获取(route.data)值!!您可以通过Router.config()在返回的对象中搜索简单路径,如“/login”,但很难用可选参数解析url,如“/heros/:id”或“/posts/:post\u id/comments/:comment\u id”您需要获取查询参数吗?我会更新答案的!!!例如,我想在名为“HashHeader”的路由配置中传递一个数据(true | false),然后在每个路由更改的指令中,我需要从加载的路由中获取此数据!!!查询参数不好!!