Angular 4获取queryString

时间:2018-01-29 19:01:29

标签: angular location query-string

为公司网站制作有角度的入职页面。人们将通过欢迎电子邮件中的链接导航到该页面,该链接将包含用户特定的令牌。我需要从url querystring中获取此标记,并在所有ajax调用中使用它以进行auth目的。我的问题是阅读查询字符串。

Angular版本是4.2.4

我已经梳理了关于' @ angular / common'的文档页面。位置,LocationStrategy,PathLocationStrategy并复制粘贴导入并将它们添加到提供程序,错误后出错后出错。我无法在导入位置的任何地方找到一个简单的示例,并使用它从页面网址获取查询字符串。如果这是javascript,它是一对超级简单的几行代码。为什么这么难?任何帮助将不胜感激!

我尝试了什么:

app.module.ts

import { Location, LocationStrategy, PathLocationStrategy } from '@angular/common';

providers: [Location, {provide: LocationStrategy, useClass: PathLocationStrategy}],

page.services.ts

constructor(private location: Location) {
  console.log('location: ', location);
}

1 个答案:

答案 0 :(得分:4)

您可以使用@angular/router包中的Angular ActivatedRoute来执行此操作。像对待其他人一样将其导入模块,然后像Location那样将其注入组件中。然后,您可以访问queryParamMap,如:

constructor(private route: ActivatedRoute) {
  console.log(route.snapshot.queryParamMap);
}

这将返回一个ParamMap接口,其实际上受URLSearchParams接口启发:)

您可以执行route.queryParamMap.get('myQueryParam')之类的操作,它可以正常运行。