Angular 5子路由在路由中添加括号

2024-03-04

我有一个带有一系列组件的 Angular 5 应用程序。有些组件是其他组件的子组件,有些则不是。

我希望应用程序具有如下结构:

*/my-account/overview    // homepage
*/my-account/my-stuff
*/profile
*/non-default

我有一个 DefaultComponent,其中包含一些通用元素,例如我希望出现在大多数页面上的站点导航(除了 */非默认路由/组件之外的所有内容)。

我的路由模块定义了以下路由:

export const routes: Routes = [
    { path: '', redirectTo: 'my-account', pathMatch: 'full' },       // should redirect to localhost:4200/my-account
    { path: '', component: DefaultComponent, children: [
        { path: 'my-account', children: [
            { path: '', redirectTo: 'overview', pathMatch: 'full' }, // should redirect to localhost:4200/my-account/overview
            { path: 'overview', component: OverviewComponent },      // should resolve: localhost:4200/my-account/overview
            { path: 'my-stuff', component: MyStuffComponent }        // should resolve: localhost:4200/my-account/my-stuff
        ]},
        { path: 'profile', component: ProfileComponent }             // should resolve: localhost:4200/profile
    ]},
    { path: 'non-default', component: NonDefaultComponent }          // should resolve: localhost:4200/non-default
];

如果我直接在浏览器中点击 URL,这些路由就会完美解析。我遇到的问题是,当我尝试使用 [routerLink] 指令渲染锚点时,实际应用于 href 的 URL 是

href="/我的帐户/概述/(个人资料)"

而不是

href="/个人资料"

对于 ProfileComponent。因此,如果我使用 [routerLink] 呈现导航项目列表,则每个项目都有一个实际上无法解析为组件的 href。

如果有帮助的话我有一个Github 存储库在此处演示了该问题 https://github.com/Joker2000/angular-routing.

我是否错误配置了路由?


正如埃利塞奥正确指出的那样。我在 RouterLink 本身的路由开头缺少一个斜杠。

[routerLink]=['我的帐户/概述']

本来应该

[routerLink]=['/我的帐户/概述']

值得注意的是,在我引入子路由之前,它一直运行良好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 5子路由在路由中添加括号 的相关文章

  • 使用 Angular 4 将新行添加到 mat-table 中

    如何从输入字段手动将新行添加到 Angular Material 表中 请看这张图片 如果我添加状态名称和状态代码 它应该出现在下表中 请帮助我如何使用 Angular 4 来实现它 我整理了一个简单的示例 应该可以很好地提示您从哪里开始
  • Angular 2 - 加载时共享服务

    我正在尝试将服务共享给组件 为此 我创建了 service ts 其中代码如下 import Subject from rxjs Subject export class CommonService CommonList new Subje
  • Angular 6 Asp.Net(非 Core)Web Api CORS 请求失败

    我正在构建一个 Net Web Api 它将由 Angular 6 客户端使用 但出于某种原因 我无法使其在我的开发环境中工作 我从一个非常简单的 Web Api 开始 它只返回一个字符串 用于前端和后端测试目的之间的通信 GET api
  • 如何禁用 Ionic2 / Angular2 上的“未使用的导入”警告

    我知道有一个选项可以禁用这些 未使用的导入 警告tslint跑步时ionic serve or ionic build 但我不知道该把它放在哪里 有人知道吗 谢谢 1 https palantir github io tslint rule
  • 无法在 Angular 4 中使用自定义主题

    我正在尝试在我的角度项目中使用我的自定义主题 它没有按预期工作 我收到以下错误 node modules css loader sourceMap false importLoaders 1 node modules postcss loa
  • 跨延迟加载路由创建共享模块

    我正在构建一个 Angular 11 应用程序并尝试创建一个SharedModule 我正在使用延迟加载 并希望避免在延迟加载的路由中多次加载公共模块 我创建了一个共享模块并将其导入到我的AppModule 根据我的理解 这个共享模块应该在
  • Angular4 - 滚动到锚点

    我正在尝试对同一页面上的锚元素进行简单的滚动 基本上 用户点击 尝试 按钮 它就会滚动到页面下方 ID 为 登录 的区域 现在 它正在与一个基本的id login a href login a 但它正在跳转到该部分 理想情况下 我希望它滚动
  • 如何在 RxJS 订阅方法中等待

    在 RxJS 主题的订阅回调内部 我想要await on an async功能 下面是打字稿转译器抱怨的代码示例 错误 131 21 TS2304 找不到名称 await async ngOnInit this subscriber dat
  • ngrx 存储是否持久?

    ngrx 存储是否持久 换句话说 我们可以关闭浏览器重新打开它 并检索添加到ngrx 商店 https github com ngrx platform 目前 ngrx store 不支持此类功能 但是您可以通过使用类似的库来维护状态ngr
  • 显示在 Angular 5 中作为 Blob 对象接收的图像

    我正在开发一个 MEAN Stack 应用程序 我想做的是显示存储在数据库中的图像 这样后端就可以工作 但我真正的问题是在前端Angular所以我这样做了 首先从后端接收图像 我做了一个服务来做到这一点 Function to get us
  • 修剪日期格式 PrimeNG 日历 - 删除时间戳、角度反应形式

    我将以下内容推入我的反应形式 obj 中2016 01 01T00 00 00 000Z但我想要以下2016 01 01 有谁知道有一个内置函数可以实现上述目的 我已经搜索过文档here https www primefaces org p
  • Angular - 为每个请求设置标头

    我需要在用户登录后为每个后续请求设置一些授权标头 要为特定请求设置标头 import Headers from angular2 http var headers new Headers headers append headerName
  • 在 Angular 中获取当前路由路径名称的最简单方法是什么?

    我正在寻找一种获取当前路线的路径名称的好方法 这是我能找到的最简单的 this route snapshot firstChild url 0 path 有没有更好的办法 谢谢 谢谢大家的回答 这是我发现我必须做的 router event
  • 编辑角度材质的表格单元格填充

    当我使用开发人员工具检查该元素时 它显示零填充 但是当我查看它并将鼠标悬停在它上面时 它非常清楚地在单元格内具有填充 我不知道这是从哪里来的 并且设置td padding 0 important 什么也没做 感知到的填充是由以下原因引起的d
  • 如何转义角度 HttpParams?

    在 Angular 服务中 我使用 HttpParams 将字符串发送到服务 get phone string Observable
  • 使用服务中的可观察量测试错误情况

    假设我有一个订阅服务功能的组件 export class Component ngOnInit this service doStuff subscribe data IData gt doThings data error Error g
  • 观众:覆盖单个测试的提供者(角度通用)

    我构建了一个小型角度应用程序 现在正在编写单元测试 到目前为止一切顺利 但是当我尝试测试我的 authGuard 时 我遇到了一些问题 我在用观众 https github com ngneat spectator 我在规范的提供者部分中提
  • 如何在角度材料的下拉菜单中显示表单?

    我想展示一个简单的form 如下图所示 作为dropdown当icon被点击 我查看了角材料的组件列表 但找不到任何合适的组件 有menu https material angular io components menu overview
  • 角度垫排序不适用于带点表示法的 matColumnDef

    我正在尝试按列对表进行排序 当我必须过滤另一个结果中的结果时 就会出现问题 我尝试通过括号表示法和点表示法访问该属性 但没有给出结果 还将最终节点放置在 matColumnDef 中 但失败 因为有 2 列同名 table table
  • 如何调试超时等待异步 Angular 任务?无法在角度页面上找到元素

    编辑 请注意 在 ernst zwingli 的帮助下 我找到了问题的根源 因此 如果您遇到相同的错误 他指出的修复之一可能会帮助您 我的问题是量角器本身的一个已知问题 如果您认为这可能是您 我已经扩展了我的步骤 以在我最初的问题之后查明问

随机推荐

  • 如何清除WKWebView的WKBackForwardList?

    看来backForwardListWKWebView 的属性是只读的 但我见过人们使用一些非常神奇的东西来解决这个问题 我需要找出某种方法来清除 WKWebView 的历史记录 我有什么想法可以这样做吗 到目前为止 我已经尝试了一些失败的技
  • read.table 或 read.csv 上的列名称向左移动

    最初我有这个 TSV 文件 示例 name type qty cxfm 1C 0 d2 H50 2 g3g 1G 2 hb E37 1 nlx E45 4 所以我使用 read csv 从 tsv 文件读取数据 但我总是得到以下输出 nam
  • 使用 Websphere MQ 6 授权

    我在运行 Windows Server 2003 的虚拟机上安装了 IBM 的 WebSphere MQ 版本 6 的服务器端 该虚拟机位于 Vista 桌面上 桌面已安装客户端 我有一个小测试程序 来自他们的代码示例 它将一条消息放入队列
  • Javascript 和 AJAX,仅在使用alert()时有效

    我的 JavaScript 遇到问题 它的行为似乎很奇怪 这就是正在发生的事情 我有一个表单 在用户提交后 它调用一个函数 onsubmit 事件 来验证提交的数据 如果有问题或者用户名 电子邮件已经在数据库中 这部分使用 ajax 它将返
  • 获取JUnit 4中@Before中当前正在执行的@Test方法

    我想获取当前正在执行的测试方法 Before这样我就可以将注释应用于当前正在执行的方法 public class TestCaseExample Before public void setUp get current method her
  • 从 bash 调用 php 函数 - 带参数

    我有一个简单的func php文件与concat功能 我想用两个参数从 linux bash shell 调用这个函数 1st Hello 2nd World 并将输出 Hello World 打印到 linux bash shell 请告
  • Laravel 5 - 如何创建 Artisan 命令来执行 bash 脚本

    我想获得一个 artisan 命令来在执行时运行 bash 脚本 所以我使用以下命令创建了一个 artisan 命令 php artisan make command backupList command backup list 这是 ba
  • 保存时 VSCode Prettier 格式搞乱了格式

    在保存功能上使用 VSCode Prettier 格式已经有一段时间了 最近 Javascript 不断犯错误和格式错误 例如 const foo 123 save const foo 1 23 我暂时禁用了它 但是有什么办法可以防止这种情
  • 与泛型的模式匹配

    给定以下类模式匹配 clazz match case MyClass gt someMethod MyClass 是否可以根据模式匹配结果以通用方式引用 MyClass 例如 如果我有 MyClass 的多个子类 我可以编写一个简单的模式匹
  • 使用凭据将 I/O 文件写入共享网络驱动器

    我想将 txt 文件放到共享网络驱动器上 该路径是网络驱动器上的映射 需要凭据 登录名和密码 我可以使用 FileOutputStream 传递这些参数吗 FileOutputStream fos DataOutputStream dos
  • R 2.14.0 包检查中的描述导入顺序:和 NAMESPACE import()

    当我检查包时 我试图找出函数名称之间似乎存在冲突的地方 我最终可能会直接询问这个问题 但首先 我想知道三件事 R exts 中似乎没有提到这三件事 描述 导入和命名空间导入 中列出的包应该是相同的 对吧 在任一列表中 导入顺序重要吗 如果是
  • 将 Html 表转换为数据表的最佳方法是什么

    我有一个 html 表 我想将其转换为数据表 这样做的最佳方法是什么 谢谢 不要自己解析 HTML 有解析库可以为您做到这一点 再加上HTML 敏捷包 http html agility pack net z codeplex和 LINQ
  • Fusion Table 和 Google 服务帐户

    我正在尝试使用 Google 服务帐户从我的 AppENGine Java 应用程序访问 Fusion 表 此代码片段用于获取 OAuth 访问令牌 ArrayList
  • 通过交替行组进行 SQL 分区

    我有一个类似这样的数据表 Key LotId TransactionType Quantity Destination 1 A Transform NULL Foo 2 A Transform NULL Bar 3 A Consume 10
  • 从 PHP 执行 Perl 脚本时出现问题

    试图弄清楚这一点 我正在尝试使用 shell exec 在 php 中执行 perl 脚本 如下所示 它不会使用 gt filename txt 将输出写入文件 如果我执行而不将其定向到文件名 它将起作用 因为我可以使用 echo 确认这一
  • Spring MVC:在 中使用通配符

    我正在为 Spring MVC 应用程序实现一个缓存清除系统 为了让这个系统正常工作 我必须从给定的 URL 中删除 缓存清除代码 假设我生成的缓存清除代码是 123 并且我有一个 css 网址 public 123 css style c
  • 如何从 C# 调用 C++ dll 导出函数

    这是我第一次尝试将 C 与非托管 C 混合在一起 所以这可能是一个非常简单的问题 但我不明白 我需要将 C dll 中的一些函数调用到 C 代码中 以下是 dll 项目的代码 h 文件 pragma once include
  • D的语法真的是上下文无关的吗?

    几个月前我在 D 新闻组上发布了这个问题 但由于某种原因 答案从未真正说服我 所以我想我应该在这里问 D 的语法显然是上下文无关的 http www digitalmars com d 2 0 template comparison htm
  • 将值分配给 R 中数组的特定维度

    我有一个多维数组并尝试将值分配给特定维度 请参阅下面的代码了解我当前的方法 Create a array and fill with NA set seed 1 dim arr lt seq 2 10 arr lt array NA dim
  • Angular 5子路由在路由中添加括号

    我有一个带有一系列组件的 Angular 5 应用程序 有些组件是其他组件的子组件 有些则不是 我希望应用程序具有如下结构 my account overview homepage my account my stuff profile n