如何使用带有命名路由器出口和url参数的Router.navigate()

时间:2018-05-29 11:30:02

标签: angular angular-routing

我使用命名的路由器插座时遇到了麻烦,我想虽然我假设我遵循了有角度的文档,但我认为它使用错了:

路由器配置:

const routes: Routes = [

    {path: 'checktypes', component: ChecktypeComponent},
    {path: 'checktypes/:id', component: ChecktypeDetailsComponent, outlet: 'checktypeDetails'},

  ];

ChecktypeComponent的模板:

...
<router-outlet name="checktypeDetails"></router-outlet>
...

ChecktypeComponent(途中/checktypes):

this.router.navigate([{outlets: {checktypeDetails: ['checktypes', 1]}}]);

为了简单起见,我对id 1进行了硬编码。我总是得到错误Cannot match any routes. URL Segment: 'checktypes/1'。我尝试了很多东西,但我无法让它工作。我做错了什么?

1 个答案:

答案 0 :(得分:0)

您可以使用以下

对于像

这样的路线
{
 path: 'update-book/:book-id',
 component: BookUpdateComponent,
 outlet: 'bookPopup' 
}

您可以导航为

this.router.navigate([{ outlets: { bookPopup: [ 'update-book', book.id ] }}]);

这样您就可以将参数传递给URL,并且URL变为

http://localhost:4200/book(bookList:book-detail//bookPopup:add-book)