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

标签 typescript angular angular2-routing

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

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

我的链接如下所示:<a [routerLink]="['/Page', {page: page.url | slug}]" class="list-group-item">{{ page.title }}</a>

在“弹头”管道内部,我什至 URIDecode字符串,当我记录它时它是正确的。它会记录类似 /pages/level-1/ 的内容,但是当我检查实际的 a页面上的标签显示 href="/pages%2Flevel-1" .

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

最佳答案

您需要像这样用 (+) 替换逗号 (,)

Wrong => <a [routerLink]="['/Page', page.url]" class="list-group-item">{{ page.title }}</a>
Right => <a [routerLink]="['/Page' + page.url]" class="list-group-item">{{ page.title }}</a>

关于typescript - Angular2 RouterLink 通过用 %2F 替换斜杠来中断路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36597832/

相关文章:

typescript - 如何在 ionic2 上传前获取文件名和 mime 类型?

typescript - 如何在 typescript 中为 `type`定义 `Electron`?

json - Observable 和 http json Angular 的问题

Angular2 为什么使用@Output 而不是@Input 进行回调

javascript - Angular2 v3 组件路由器 : TypeError: Cannot read property 'split' of undefined

angular - TS2416 : Property 'canActivate' in type 'MyGuard' is not assignable to the same property in base type 'CanActivate'

javascript - 未捕获( promise 中)ReferenceError 将 addEventListener 转换为 Typescript

javascript - 在 TypeScript 中将类转换为模块

angular - 组件提供者和模块提供者的区别

javascript - Angular2 ng2-popover hide() 不工作