问题标签 [angular-router-params]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
155 浏览

angular - 将 id 添加到 Angular 组件的 url,以便用户可以在浏览器中使用“返回”

我有一个项目列表,这些项目列表显示在来自角度服务的 list.component 中。

当用户单击其中一个项目时,它会通过 css hidden div 显示之前的内容,该 div 显示了单击项目的详细信息:

该组件通过 Input() 装饰器显示单击项目的详细信息。

我正在寻找一个将 id 或单词传递给 url 的方法,这样我就可以创建指向特定项目详细信息的链接,并且用户可以使用“返回”按钮返回到列表中,而不是离开整个组件。

我确实检查了 angular 的文档并进行了很多搜索;它找不到解决方案。

我会很感激一个提示!非常感谢

0 投票
1 回答
141 浏览

angular - Angular 12 Routing 在 URL 中显示 UTF-8 字符,例如“%2F”、“%3F”,并且显示无法匹配任何路由。URL段错误

我有一个 Angular 应用程序,它需要在登录后显示主页。当应用程序正确登录时,URL 栏中显示的 URL 包含 UTF-8 字符,例如'!'、'%2F'、'%3F',重新加载时会显示错误Error: Cannot match any routes. URL Segment: '!'

应用程序路由.module.ts

为了导航到路线,使用以下功能

导航方式

现在,当应用程序在登录后移动到新路由时,它会在浏览器的 URL 栏中显示以下类型的 URL

http://localhost:4200/#!#%2Fhome%3Fguid=c217-21f6-189f-8b69-a1a6&screenId=3b3f2275-0ad4-48d6-bd76-8270cb9b9807

在浏览器中使用上述 URL,当我们尝试重新加载页面时,它会显示以下错误并重定向回登录页面

错误:无法匹配任何路由。网址段:'!'

Angular Version used: 12.2.9

这可能是 Angular 12 的问题,还是我在这里做错了什么?

0 投票
1 回答
80 浏览

angular - 在 Angular 中首次渲染时,路由查询参数为空

我有一个场景,我根据角度 url 的查询参数决定操作。

例如,如果 url 是localhost:4200/token=abc我需要做一些任务,如果 url 是localhost:4200那么我需要做其他事情。我ngOnInit()app component. 问题是,第一次渲染组件时查询参数为空,并且需要一段时间才能输入参数值。

代码:

问题是参数最初是空的,它进入else条件。之后又去if了。输出类似于

如何检查路由是否已使用参数正确初始化然后继续?

PS:我在 Next.js 中发现了类似的东西,但是如何在 Angular 中做到这一点?

0 投票
2 回答
35 浏览

angular - 如何检索通过 NavigateByUrl 传递给 Angular 路由的 queryParams

如何从 Angular 的目标组件中检索NavigationExtras使用navigateByUrl如下所述传递的参数?