相关疑难解决方法(0)

Angular2 RouterLink通过用%2F替换斜杠来中断路由

从最新的Angular2版本(2.0.0-beta.14)开始,可以使用包含多个斜杠的查询参数,例如/ foo/bar.

这很好用,但是每当我在RouterLink链接中使用带有多个斜杠的参数时,它都会逃脱/,%2F导致路由在重新加载时不再起作用.

我的链接看起来像这样: <a [routerLink]="['/Page', {page: page.url | slug}]" class="list-group-item">{{ page.title }}</a>

在'slug'管道内部我甚至URIDecode是字符串,当我记录它时它是正确的.它会记录类似的东西/pages/level-1/,但当我检查a页面上的实际标签时,它说href="/pages%2Flevel-1".

我很无能,因为即使我{{ page.url | slug }}在HTML模板中打印了值,它也会返回带有斜杠的url.

typescript angular2-routing angular

5
推荐指数
3
解决办法
6288
查看次数

Angular 路由 - 如何在路由路径中使用正斜杠

如何在 Angular 路由中使用带有正斜杠的路径?

在 Hero 教程的基础上,我有:

{ path: 'detail/:path', component: HeroDetailComponent },
Run Code Online (Sandbox Code Playgroud)

路径应该是动态的。它可以像

a/b
a/b/c
a/d/e/f
Run Code Online (Sandbox Code Playgroud)

等等。关键是我不知道路径有多深,也不知道各个路径部分的名称。

在 HTML 中它的用法如下

<a routerLink="/detail/{{hero.path}}">
   {{hero.path}}
</a>
Run Code Online (Sandbox Code Playgroud)

错误是

Error: Cannot match any routes.
Run Code Online (Sandbox Code Playgroud)

最终目标是 Angular 服务在向服务器发出请求时使用路径作为 URL 查询参数。

我已经在 routerLink 中尝试了几个硬编码值,以确保如果我只是传递一个不带任何正斜杠的值,则代码可以正常工作。

我在这里尝试了建议,但没有成功:Forward Slash in Angular RouteParameters

我发现https://github.com/angular/angular/issues/10570似乎描述了我的问题,并声称它已于 2016 年修复。其他一些人声称它在 2017 年不起作用。

如果有人能指出我正确的方向,我会很高兴。谢谢!

angular2-routing angular

5
推荐指数
1
解决办法
4206
查看次数

标签 统计

angular ×2

angular2-routing ×2

typescript ×1