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

时间:2016-10-28 13:39:38

标签: angular angular2-routing angular2-directives

我正在搜索访问已加载路线的方式。

最初路由更改可以通过以下路由器事件进行订阅:

@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()???

中获取当前路由数据

在有角度的2文件中,搜索没有结果。

1 个答案:

答案 0 :(得分: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);
    });
  }

你会得到一个像波纹管一样的控制台 enter image description here

从查询参数中获取值

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"];
}

使用此方法,您将获得oauth_token到queryParams的值。我觉得这对你很好

注意:您的网址将与http://example.com?oauth_token=123

类似