javascript - 无法在 Angular 的 Hashlocationstrategy 中获取查询参数

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

我在 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

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

我尝试使用 Activated route snapshot 和 subscribe,都给我空值。

最佳答案

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

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

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

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

this.activatedRoute.snapshot.queryParams

HashLocationStrategy 获取哈希(片段/客户端)参数并将它们插入到查询参数中。由于您没有任何参数,因此您看不到任何参数。

关于javascript - 无法在 Angular 的 Hashlocationstrategy 中获取查询参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63463068/

相关文章:

javascript - 如何使用 Angular Material 正确放置上下文菜单?

javascript - 无法打开购物车对话框 - Material 对话框 - Angular2+

javascript - 使用命名函数作为 jquery ajax 成功回调时需要括号吗

javascript - 在几小时之间停止刷新页面

angular - 加载数据后设置 react 形式(异步)-Angular 5

angular - Angular 如何使用 *ngFor 过滤未知数量的元素?

javascript - 如何将 JavaScript JSON 流延迟一分钟?

javascript - 带有 ExtJS 4.1 的 Google Apps 脚本

angular - 如何使用带有 @defer 的异步管道在 Angular 17 中的模板中加载和声明变量

angular - 在 ngFor 中使用 mat-accordion 和 mat-expansion-panel