4

在我的 Angular 4 项目中,我在路由中有一个容器组件:

{ 路径:'someComponent',组件:SomeComponentContainerComponent },

当被访问时,它会在这个容器组件内随机创建一个或多个 SomeComponent 实例,并将 URL 更改为如下所示:

'localhost:4200/someComponent/id1/id2/id3/...'

id 的数量取决于创建的实例数量。如果用户访问具有一个或多个可选 id 的上述 URL,则应由容器对象处理以创建相应数量的具有给定 id 的 SomeComponent 实例。

对于这些可选路由参数的静态数量,我可以尝试以下方法:

{ 路径:'someComponent',组件:SomeComponentContainerComponent },

{ 路径:'someComponent/:id1',组件:SomeComponentContainerComponent },

{ 路径:'someComponent/:id1/:id2',组件:SomeComponentContainerComponent },

...

我的问题是,当它们的数量并不总是相同时,如何捕获这些可选路由参数?

非常感谢任何帮助,在此先感谢。

4

1 回答 1

4

以下解决方案对我有用:

在 module.ts

{
    path: 'someComponent',
    children: [{path: '**', component: SomeComponentContainerComponent}]
}

并在 component.ts

constructor(private route: ActivatedRoute){}

ngOnInit(){
    this.route.url.subscribe((segments: UrlSegment[]) => {
        for(var i = 0; i < segments.length; i++){
            console.log("param: " + segments[i]);
        }
    });
}
于 2017-11-21T11:02:36.490 回答