从最新的 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/