问题标签 [routerlink]

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 回答
2329 浏览

angular - 在 Angular2 组件中对 RouterLink 进行单元测试

我正在尝试在我的组件中测试对 routerLink 的点击:

使用这个测试:

但我的期望失败并显示以下消息:Expected '/' to equal '/board/1'

这是我的测试设置:

我已经关注了其他两个与 SO 相关的问题(此处此处)的答案,但无济于事。

关于我做错了什么的任何想法?

0 投票
1 回答
3260 浏览

angular - this.router.navigate 代码的等效 [routerLink] 代码应该是什么?

我怎样才能在 [routerLink] 中编写它并且仍然可以传递一个 id?我正在关注此示例以供参考:示例

0 投票
0 回答
725 浏览

angular - Angular 2 routerLink 在导航栏中的 ng2-bootstrap 下拉菜单中不起作用

我在导航栏内使用带有下拉菜单的 ng2-bootstrap 导航栏。如果您在下面的代码段中向下看大约一半,*ngIf="userHasPermission()"您将看到下拉菜单的内容。我发现我必须使用带有 href 值的锚来重新加载整个页面,以便让浏览器导航到请求的 URL。在 selectRecord 函数中,我有同样的问题;router.navigate 和 router.navigateByURL 根本什么都不做。

我检查了以下内容:

  • 我在导航栏中正确导入 RouterModule 和其他 routerLink 工作正常。

  • 我没有尝试将路由器链接到当前活动路径

具有讽刺意味的是,具有下拉属性的 li 上的 routerLink 确实有效。

下拉列表本身显示得很好。选择任何选项都会导致下拉列表消失,但没有任何 routerLink 选项对下拉列表中实际包含的任何内容有任何影响。

这是导航栏标记:

我重新加载整个浏览器的工作正在工作,但是必须做一件可怕的事情来简单地更改正在查看的记录。

0 投票
1 回答
2142 浏览

angular - Angular 2 为带有多个路由器出口的 URL 添加了斜杠

我有一个有两个出口的应用程序组件:

template: '<router-outlet></router-outlet><router-outlet name="popup"></router-outlet>'

我按照此链接中的示例创建路由和 routerLinks,只要 routerLinks 在应用程序组件内,一切正常。但是,我创建了一个主布局组件,里面有一个菜单,这样我就可以在所有页面上重用它,并使用 loadChildren 来加载里面的相应模块和组件。

问题是当我将弹出出口的 routerLinks 移动到菜单中时,它包含主路由的尾部斜杠,并且生成的 url 不起作用。因此,例如这个 routerLink:

如果它被放置在应用程序组件中,则创建 url 'localhost/mainroute(popup:login)' ,如果它被放置在菜单组件中,则创建 'localhost/mainroute/(popup:login)'

虽然第一个 url 有效,但第二个 url 产生错误: 错误:无法匹配任何路由:'mainroute'

我不明白为什么它以不同的方式对待这两种情况。我也不明白,即使 url 'localhost/mainroute/'有效,第二个生成的 url 也不会因为尾部斜杠。

有人能帮我吗?

0 投票
2 回答
407 浏览

angular - 通过一系列路由器链接构建查询字符串参数

是否可以将路由器链接配置为简单地添加到查询字符串中,以便我们可以通过一系列链接构建查询字符串?

给定网址:

页面上某处的链接类似于:

将链接到:

给定第二个链接:

是否可以制作路线:

而不是覆盖当前的查询字符串?我怀疑通过侦听路由器事件并手动解决它是可能的,但我想知道通过某些配置是否不可能?

0 投票
3 回答
6275 浏览

angular - Angular2 - 将 routerLink 参数添加到所选表值

我有一个 routerLink 附加到我在 angular2 组件的 HTML 中创建的表中的前导值。单击该表值后,我希望 routerLink 不仅发送到下一个组件,而且还将选择的值带到下一个组件。

当前代码示例

我有链接,所以它正在发送到记录页面,但是如何将名称发送到该组件,以便我可以显示我要显示的特定记录?

0 投票
4 回答
3344 浏览

angular - Angular 2 路由在 aot 编译构建后不起作用

我正在使用 RouterModule,我的 app.module.ts 中有这个

当我在本地测试时,它工作得很好。/mainMenu/products 将我带到 MainComponent,它包括 ProductsComponent。/targeting 也将我带到 TargetingComponent。

我使用

dist 中生成的文件放在服务器上。该页面会自动重定向到 /mainMenu/products。但是,如果我输入 URL /mainMenu/products 或 /targeting 它不起作用。我得到GET /mainMenu/products" Error (404): "Not found"GET /targeting" Error (404): "Not found"。所以我认为这是因为提前编译而发生的,这是真的吗?我应该在配置中做些什么才能让它工作吗?

我正在使用 npm http-server。

0 投票
0 回答
262 浏览

angular-cli - routerLink 在 @angular/cli 中停止工作

我刚刚将我的项目从angular-cli发布版本更新@angular/cli。之前一切正常,但升级后,它停止工作。如果我删除routerLink,那么它工作正常。请帮我解决这个问题。

我正在更新RouterModule如下。

包.json:

0 投票
1 回答
828 浏览

angular - Angular2 [routerLink] 有效,this.router.navigate 似乎使应用程序崩溃

我在使用这样的按钮可以正常工作的 Angular2 应用程序中遇到路由问题:

但是在函数中使用相同的路由失败 - 页面似乎加载了一秒钟,然后应用程序完全刷新并让我回到主/根页面,但控制台上没有错误。

此外,只需在浏览器中输入路径即可导航到该路径,可以很好地加载组件,而不会出现任何错误或重定向。

路由器配置:

@NgModule 配置:

0 投票
2 回答
1557 浏览

javascript - 格式化 routerLink 参数 url

在我的 Angular 2 应用程序中,我定义了一个路由器链接,例如:

目前,我将 demo.name 设为“example.net/demo/A%20%demo%20%test”。我想将其格式化为“example.net/demo/a-demo-test”以显示在浏览器地址栏中。

任何帮助,将不胜感激。