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

Pra*_*wat 3 typescript angular2-routing router-outlet angular

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

这是路由配置文件

{ path: 'contact-hold/:id', component: OperationComponent, outlet: 'popup' }
Run Code Online (Sandbox Code Playgroud)

这是我的链接:

<a [routerLink]="['\',{outlets:{popup:['hold',1]}}]">Hold</a>
Run Code Online (Sandbox Code Playgroud)

这是浏览器中的样子:

/contact-list(popup:contact-hold/1)
Run Code Online (Sandbox Code Playgroud)

这是我保留的路由器插座AppComponent

<router-outlet name="popup"></router-outlet>
Run Code Online (Sandbox Code Playgroud)

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

this.route.queryParams.subscribe(params=> {      
      console.log(params["id"]);
    })  
Run Code Online (Sandbox Code Playgroud)

我已经解决了 stackoverflow 中的其他问题并实现了解决方案,但仍然不起作用。这段代码可能有什么问题?

Cha*_*dru 5

尝试这个 :

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

routeSub: any;

constructor(
    private route: ActivatedRoute
) {}

this.routeSub = this.route.params.subscribe((params) => {
    console.log('params', params);
})
Run Code Online (Sandbox Code Playgroud)