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



我想与该url

有一条路线
/collections/:collectionId/books/:bookId/:title

例如。

/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

我设法实现了我想要的使用"收藏"路线下的"书籍"儿童路线的目标,但是我想在没有嵌套路线的情况下这样做。

谢谢

应该是

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

围绕数字的报价不是必需的,但我认为这是一个很好的做法。

最新更新