如何使用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),然后在每个路由更改的指令中,我需要从加载的路由中获取此数据!!!查询参数不好!!