Angular 角度'上的重复路径;s路由器

Angular 角度'上的重复路径;s路由器,angular,recursion,routing,angular5,angular6,Angular,Recursion,Routing,Angular5,Angular6,我有一个组件,我想处理嵌套路由。我有一个嵌套的数据结构,它的长度可能是无限的。有没有一种方法可以像下面这样创建嵌套路由,而不必在Angular的路由器中手动创建?我用的是角度6 /items/{id} /items/{id}/child/{id} /items/{id}/child/{id}/child/{id} 最终,路由只是类型数组中的对象: 因此,如果我们定义一个函数将新对象推送到这个数组中,那么这将允许您迭代数据结构(您没有提到它是什么结构),然后在这种情况下将这些对象推送到数组app

我有一个组件,我想处理嵌套路由。我有一个嵌套的数据结构,它的长度可能是无限的。有没有一种方法可以像下面这样创建嵌套路由,而不必在Angular的路由器中手动创建?我用的是角度6

/items/{id}
/items/{id}/child/{id}
/items/{id}/child/{id}/child/{id}

最终,路由只是类型数组中的对象:

因此,如果我们定义一个函数将新对象推送到这个数组中,那么这将允许您迭代数据结构(您没有提到它是什么结构),然后在这种情况下将这些对象推送到数组
appRoutes

它最终会看起来像:

function generateRoutes(dataStructure: any) {
  // Extract data from your structure into your new array using Array.map() etc. 
  // Assuming we use a for the Array.map() function. 

  dataStructure.map((item: Route) => {
    return {
      path: item[0].path,
      component: item.component // You may need to cast this to the Component interface
    }
  })
}

const appRoutes: Routes = generateRoutes(routesData);

最终,路由只是类型数组中的对象:

因此,如果我们定义一个函数将新对象推送到这个数组中,那么这将允许您迭代数据结构(您没有提到它是什么结构),然后在这种情况下将这些对象推送到数组
appRoutes

它最终会看起来像:

function generateRoutes(dataStructure: any) {
  // Extract data from your structure into your new array using Array.map() etc. 
  // Assuming we use a for the Array.map() function. 

  dataStructure.map((item: Route) => {
    return {
      path: item[0].path,
      component: item.component // You may need to cast this to the Component interface
    }
  })
}

const appRoutes: Routes = generateRoutes(routesData);

我已经解决了与你非常相似的问题。这是我使用的路由配置:

import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { FolderDetailsComponent } from './folder-details.component';

    const routes: Routes = [
        {
            path: '',
            component: FolderDetailsComponent,
        },
        {
            path: 'folders/:folder_id', loadChildren: () =>
                import('./folder-details.module').then(m => m.FolderDetailsModule)            
        }];

    @NgModule({
        imports: [RouterModule.forChild(routes)],
        exports: [RouterModule]
    })
    export class FolderRoutingModule { }

此模式将匹配路径,例如:
/folders/1/folders/2/folders/3

我已经解决了与您非常相似的问题。这是我使用的路由配置:

import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { FolderDetailsComponent } from './folder-details.component';

    const routes: Routes = [
        {
            path: '',
            component: FolderDetailsComponent,
        },
        {
            path: 'folders/:folder_id', loadChildren: () =>
                import('./folder-details.module').then(m => m.FolderDetailsModule)            
        }];

    @NgModule({
        imports: [RouterModule.forChild(routes)],
        exports: [RouterModule]
    })
    export class FolderRoutingModule { }
此模式将匹配路径,例如:
/folders/1/folders/2/folders/3