2016-04-13 22 views
4

由于最新的Angular2版本(2.0.0-beta.14),可以使查询参数包含多个斜杠,如/ foo/bar。Angular2 RouterLink通过用%2F替换斜杠来分割路由

这很好,但是无论何时我在一个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"

我很笨,因为即使当我在我的HTML模板中打印{{ page.url | slug }}的值时,它也会以斜杠返回URL。

+1

我想如果可能的话,你应该创造http://github.com/angular bug报告,用于演示这一问题的Plunker。 –

+0

谢谢,明天我会创建一个新的问题。 –

回答

3

所以我找到了解决方案,感谢Github上的Angular2 Issues页面(感谢Günter!)。

我的路线是这样来配置:({ path: "/:page", component: Page, name: "Page" }),而是应该已经({ path: "/*page", component: Page, name: "Page" }),差为page前面*通配符。

这是我所创建的问题: https://github.com/angular/angular/issues/8049

+1

Simon Green(Captain Codeman)永远是知识的绝佳来源! –