routing - 角度 6 中的 url 中缺少查询参数
问题描述
直接输入的url没有显示url中的查询参数。
我给我的路线路径为:
{ path: 'userdetails/:id', component: userdetailscomponent}
我的网址需要作为
https://www.(site).com/userdetails?id=5.
但网址的工作原理是:
https://www.(site).com/userdetails
直接在浏览器中打开 url 时,查询参数不显示。查询参数正在消失,并且 url 将在没有查询参数的情况下进入主路由。我怎样才能让查询参数工作,他们有什么方法可以获取丢失的查询参数?
解决方案
试试这种方法。堆栈闪电战示例
对查询参数使用这种方式
{ path: "userdetails", component: UserDetailsComponent}
在您的打字稿文件中
import {ActivatedRoute} from '@angular/router';
userId;
constructor(private activatedRoute: ActivatedRoute) { }
ngOnInit() {
this.activatedRoute.queryParams.subscribe(params => {
this.userId = params['id'] || 0;
});
}
在你的 html 文件中
<div *ngIf="userId; else userDetail">
<h2>User Details for the user with id {{userId}}</h2>
</div>
<ng-template #userDetail>
User Details Component
</ng-template>
如何使用这个
Here sends query param id value as 15
<a [routerLink]="['/userdetails']" [queryParams]="{ id: 15}">User Details
with query parameter</a>
Without query parameters
<a [routerLink]="['/userdetails' ]">User Details</a>
推荐阅读
- esp8266 - ESP8266 WeMos D1 使用 deepsleep 消耗太多电池
- javascript - 如何在计时器中添加保存按钮
- r - 当我下载了正确的 chromedriver 并保存到路径时,为什么我仍然有 Selenium chromedriver 不匹配问题
- asp.net-mvc - 我在 Employee 控制器上从 lstpresentEmp 和 lstAbsentEmp 数据库访问值时遇到问题
- python - 为什么我的 Python 应用程序与 Heroku 的 Python buildpack 不兼容
- c# - 中止 MassTransit StartAsync
- swift - 如何在 Alamofire 5 中获取原始请求?
- asp.net-core - 在 ASP.NET Core 中实例化 IHubContext
- css - 通过 CSS 的表单视图隐藏按钮
- dll - 错误 LNK2019:未解析的外部符号静态库