在我的routable component中,我有

@RouteConfig {
  {path: '/login',   name: 'Login', component: LoginComponent}
}

但是,如果我转到app_url/login?token=1234,如何获取查询参数?

最佳答案

为了补充前面的两个答案,Angular2在路由中同时支持查询参数和路径变量。在@RouteConfig定义中,如果您在路径中定义参数,则Angular2会将其作为路径变量处理,否则将作为查询参数处理。

让我们来看一个例子:

@RouteConfig([
  { path: '/:id', component: DetailsComponent, name: 'Details'}
])

如果您像这样调用路由器的navigate方法:
this.router.navigate( [
  'Details', { id: 'companyId', param1: 'value1'
}]);

您将拥有以下地址:/companyId?param1=value1。查询参数和路径变量的参数获取方法相同。它们之间的区别在于,路径变量可以看作是必需参数,而查询参数可以看作是可选参数。

希望对您有帮助,
蒂埃里

更新:在更改路由器alpha.31后,http查询参数不再起作用(Matrix params #2774)。相反, Angular 路由器使用所谓的矩阵URL表示法。

引用https://angular.io/docs/ts/latest/guide/router.html#!#optional-route-parameters:

关于javascript - 如何在angular 2中处理查询参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34599174/

10-12 13:05