Angular 无法路由到延迟加载模块中的子级

Angular 无法路由到延迟加载模块中的子级,angular,angular4-router,Angular,Angular4 Router,我是一个新的开发人员到角4。在我的一个项目中,我使用延迟加载进行路由。延迟加载模块包含子组件。然而,路由到子组件总是会失败并出现错误 Error: Cannot match any routes. URL Segment: 'home/addGroup' 如果我做错了什么事,你能帮忙吗?我尝试了所有的方法,但都没有成功 下面是我的模块和路由 index.html: 我发现了问题。我必须承认,当我发布这个问题时,我的理解是错误的 我必须在这里提到几点 我使用app.routes中的路由“ho

我是一个新的开发人员到角4。在我的一个项目中,我使用延迟加载进行路由。延迟加载模块包含子组件。然而,路由到子组件总是会失败并出现错误

 Error: Cannot match any routes. URL Segment: 'home/addGroup'
如果我做错了什么事,你能帮忙吗?我尝试了所有的方法,但都没有成功

下面是我的模块和路由

index.html:


我发现了问题。我必须承认,当我发布这个问题时,我的理解是错误的

我必须在这里提到几点

我使用app.routes中的路由“home”路由到homeModule

在home.routes中,我将“HomeComponent”作为默认值加载。因此,路由到“HomeComponent”是成功的

如果我们敏锐地观察回家的路线

它包含一条单独的“回家”路线

由于这个不同的“home”路由在“app.routes”中也包含相同的名称“home”,这增加了很多混乱

有两种方法可以纠正我的错误

一,。 首先,为了消除混淆,将home.route中的“home”路径更改为“welcome”

         path: 'home', component: HomeComponent,

现在,修复实际的bug

 { path: '', component: HomeComponent, pathMatch: 'full' } 
应改为

 { path: '', redirectTo: 'welcome', pathMatch: 'full' } 
这将在加载homeComponent时重定向到home/welcome。当你点击addGroup时,它会重定向到“/addGroup”。因此,结果路径将是“/home/welcome/addGroup”

  • 第二种方法是,将home.routes中的路线更改为

    在这种情况下,路由到addGroup时的结果路径仅为“/home/addGroup”


  • 您是否尝试从routerLink中删除支架?像这样:是的,我试过了。但结果是一样的。错误:无法匹配任何路由。URL段:“home/addGroup”尝试在
    home组件中向
    routerLink
    -
    [routerLink]=“['home',addGroup']”添加完整路径。
    @ManojChalode:我没能告诉你。它就是这样工作的。但我发现其中有两个问题。1.url显示为“”。路径包含“home”2次。我觉得应该这样来表现。它应该显示为“”。不是吗?2.如果我有10条RouterLink,我必须在所有路线上不必要地给出“家”?
             path: 'home', component: HomeComponent,
    
             path: 'welcome', component: HomeComponent, 
    
     { path: '', component: HomeComponent, pathMatch: 'full' } 
    
     { path: '', redirectTo: 'welcome', pathMatch: 'full' } 
    
     export const router: Routes = [     
     { path: '', component: HomeComponent,
         children:[               
           {path: 'addItem/:groupName', component:AddItemComponent},
           {path: 'addGroup', component:AddGroupComponent}
         ]
      }
    ];