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

Angular 角度2路由器:多个路由参数,angular,Angular,我想要一个带有该url的路由 /collections/:collectionId/books/:bookId/:title e、 g 在我的app-routing.module.ts文件中 {path: 'collections/:collectionId/books/:bookId/:title', component: BookDetailsComponent}, 是否可以不使用嵌套路由器出口 我试过了 this.router.navigate(['/collections',{col

我想要一个带有该url的路由

/collections/:collectionId/books/:bookId/:title
e、 g

在我的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"]);
我明白了

我在“collections”路由下使用了一个“books”子路由,成功地实现了我想要的,但我希望不使用嵌套路由

谢谢

应该是

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

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

作为数组传递给
路由器的具体内容。导航
?@Dimanoid:我编辑了我的问题,以显示更多的代码。作为path@Dimanoid:是的,这就是问题所在,谢谢汉克斯。但是,它似乎只有在相应模板中有一个逗号时才起作用,否则我会得到一个错误,即找不到加载“BookDetailsComponent”的主出口。感谢您提供有关逗号的提示。不知道你说的路由器插座是什么意思。路由器出口始终是必需的。如果您认为不适合您的情况,则最好调查带有复制品的Plunker。代码(this.router.navigate…)位于CollectionComponent中,其模板不包含路由器出口。我的路由器出口在我的AppComponent中。我将尝试创建一个plunkerI我同意在这种情况下不需要路由器出口,因为您使用的是绝对路径(从
/
开始)
Error: Cannot match any routes. URL Segment: 'collections/10/456678/my-book.html
this.router.navigate(['/collections', '10', 'books', '456678', "my-book.html"]);