Angular 2路由器:多个路由参数

时间:2016-12-07 09:30:08

标签: angular

我希望有一个包含该网址的路线

/collections/:collectionId/books/:bookId/:title

e.g。

/collections/10/books/456678/my-book.html

在我的app-routing.module.ts文件中

{path: 'collections/:collectionId/books/:bookId/:title', component: BookDetailsComponent},

是否可以不使用嵌套路由器插座?

我试过

this.router.navigate(['/collections',{collectionId: 10, bookId: 456678, title: "my-book.html"}]);

但是出现了像

这样的错误
Cannot match any routes. URL Segment: 'collections;collectionId=10;bookId=456678;title=my-book.html'

如果我将参数作为数组传递,

this.router.navigate(['/collections', 10, 456678, "my-book.html"]);

我得到了

Error: Cannot match any routes. URL Segment: 'collections/10/456678/my-book.html

我设法通过“书籍”来实现我想要的目标。 “收藏品”下的儿童路线'路线,但我想在没有嵌套路线的情况下这样做。

由于

1 个答案:

答案 0 :(得分:12)

应该是

this.router.navigate(['/collections', '10', 'books', '456678', "my-book.html"]);

这些数字的引号不是必需的,但我认为这是一种很好的做法。