如何在根组件中获取查询参数?

时间:2017-01-25 16:20:55

标签: javascript angular

在角度2中,是否可以以"角度方式获取根组件中的查询参数"?

我有一个简单的plnkr,它有一个根组件和两个路由/状态 我尝试使用以下参数获取参数:

export class App implements OnInit {

  constructor(private route: ActivatedRoute) {

  }
  ngOnInit(){
    console.log(this.route.snapshot.queryParams);
  }
}

如果我使用查询参数打开示例:plnkr,控制台日志中的对象为空 但是当我点击" One"或"两个"链接,它可以获取查询参数。

我认为root无法查看查询参数,因为它不是激活的路由。
解决方案是创建假的根路由吗?或者是否有其他方式来阅读网址(不是谈论本地JS)。

我的使用案例:无论我的路线是什么,我都需要能够检查是否有一个"令牌"在网址中,从中读取然后将其删除。

1 个答案:

答案 0 :(得分:0)

看看我的变化:

https://plnkr.co/edit/b45VUvfVqUl5u2EuzNI9?p=preview

{
path: '**',
component: App
}

我添加了一条默认路由 - 应该添加到路由器中。这基本上说是传入的任何其他路线然后去这里。

<a routerLink="**" [queryParams]="{token:12345678}">Home</a>

在链接中我添加了一个主页链接,类似于您的其他链接。当您导航到一个或两个,然后返回到主页时,您将看到在对象中传递的令牌。 这是因为在链接中指定了令牌。

只有当链接具有硬编码或由另一个组件动态生成的令牌时,这才真正有用。

这可能会有所帮助:

https://angular.io/docs/ts/latest/guide/router.html#!#query-parameters