angular - 如何通过 angular2 指令中的选项获取当前路线

标签 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()中获取当前的路由数据???

在 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);
    });
  }

你会得到一个像下面这样的控制台 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"];
}

使用它,您将获得 queryParams 的 oauth_token 值。我认为这对你来说似乎不错

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

关于angular - 如何通过 angular2 指令中的选项获取当前路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40306334/

相关文章:

Angular2 - 指令不更新模型

angular - 将Winston记录器与Electronic + Angular 2一起使用

angular - 如何在 CanActivate 守卫中获取 url 段

Angular 2 - 使用 HashLocationStrategy 时 base-href 是多余的

angular - 如何在自定义组件宿主元素上使用自定义指令

Angular2 问题 : There is no directive with “exportAs” set to “ngForm”

Angular 6 - Bootstrap - 如何捕获模式对话框关闭事件?

angular - Angular Material 排版的不透明度

angular - 新的 Angular2 路由器配置

javascript - Angular2 单 ngFor 用于多个数组