angular 2 将参数传递给命名路由器出口?

angular 2 passing parameters to named router-outlet?

我正在通过命名路由器出口向我的 ChildComponent 发送参数。但是在子组件中,当我尝试访问参数时,它们是未定义的。

这是路由配置文件

{ path: 'contact-hold/:id', component: OperationComponent, outlet: 'popup' }

这是我的 link:

<a [routerLink]="['\',{outlets:{popup:['hold',1]}}]">Hold</a>

这是在浏览器中的样子:

/contact-list(popup:contact-hold/1)

这是我放在 AppComponent 中的路由器插座:

<router-outlet name="popup"></router-outlet>

我在我的操作组件中像这样访问这个参数:

this.route.queryParams.subscribe(params=> {      
      console.log(params["id"]);
    })  

我已经解决了 Whosebug 中的其他问题并实施了解决方案,但仍然无法正常工作。此代码可能有什么问题?

试试这个:

import { ActivatedRoute } from '@angular/router';

routeSub: any;

constructor(
    private route: ActivatedRoute
) {}

this.routeSub = this.route.params.subscribe((params) => {
    console.log('params', params);
})