我知道我们可以使用'/:id'在路由器路径中设置参数。但是我想创建一个不确定长度的数组,像这样:'/:id1/:id2/:id3/...'
目前,我正在管理多达三个这样的参数:

const routes: Routes = [
    { path: '/:name1',  component: MyComponent,   canActivate: [ LocalUserGuard ] },
    { path: '/:name1/:name2',  component: MyComponent,   canActivate: [ LocalUserGuard ] },
    { path: '/:name1/:name2/:name3',  component: MyComponent,   canActivate: [ LocalUserGuard ] }

但是我想将其扩展到任意数量的参数。

最佳答案

如果您希望它是完全任意的,则可以使用wildcard route:

const routes: Routes = [
  { path: '**', component: MyComponent, canActivate: [ LocalUserGuard ] },
]

然后在MyComponent内部,您可以通过ActivatedRoute访问URL段:

@Component({...})
export class MyComponent {
  constructor(private route: ActivatedRoute) {
    route.url.subscribe((segments: UrlSegment[]) => {
      // do whatever you need to with the segments
    });
  }
}

请参阅示例Plunker:http://plnkr.co/edit/9YYMwO?p=preview

关于angular - 路径中可变数量的参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44745761/

10-12 03:29