【问题标题】:Cant get Query params in Hashlocation strategy in Angular无法在 Angular 的哈希位置策略中获取查询参数
【发布时间】:2020-12-07 07:27:35
【问题描述】:

我在 Angular 中使用哈希定位策略

routing.module.ts

@NgModule({ 
imports: [
   RouterModule.forRoot(routes, { useHash: true })
 ],
 exports: [
    RouterModule
  ]
})

app.module.ts

@NgModule({
    providers: [{ provide: LocationStrategy, useClass: HashLocationStrategy }]
})

我正在使用此 URL 从其他应用程序路由到我的 Angular 应用程序

HTTP://localhost:4200?param_x=xyz&param_y=abc

我想在我的应用程序中获取这些参数的值,我该怎么做?

我尝试使用激活的路由快照和订阅,都给我空值。

【问题讨论】:

    标签: javascript angular angular-material angular-routing hash-location-strategy


    【解决方案1】:

    请使用片段参数打开您的客户端。

    片段参数是 # 之后的参数 - 也称为客户端参数,因为它们不会发送到服务器。

    HTTP://localhost:4200?#hash_param_x=xyz&hash_param_y=abc
    

    然后通过以下方式访问它们:

    this.activatedRoute.snapshot.queryParams
    

    HashLocationStrategy 获取 hash(fragment/client) 参数并将它们插入到查询参数中。由于您没有任何参数,因此您看不到任何参数。

    【讨论】:

    • 我有两种情况,我使用来自服务器的参数重定向到角度应用程序,我想使用这些。除此之外,我在应用程序内部使用参数。
    • 所以用片段参数打开你的客户端而不是查询。这对你有用吗?一次打开,就再也不用担心了。
    • 我更新了我的答案以反映这一点。在初始重定向之后,不需要额外的工作。您可以一直使用 snapshot.queryParams。
    • 非常适合我!谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多