【问题标题】:Lazy loading for child routes is not redirecting to child子路由的延迟加载不会重定向到子路由
【发布时间】:2020-03-12 12:42:12
【问题描述】:

嗨,我的父路由工作正常,但对于 chid 路由,它不会重定向,也不会出错

在 app.routing 中

const routes: Routes = [
  {
    path: 'card',
    loadChildren: './cards/cards.module#CardsModule',
    canActivate: [AuthGuard]
  },
  {
    path: 'card/:id',
    loadChildren: './cards/cards.module#CardsModule',
    canActivate: [AuthGuard]
  }]

在卡路由中:

   import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { Cardscomponent } from './cards.component';
import { AuthGuard } from '../_services/auth.guard';
import { CardDetailsComponent } from './card-details/card-details.component';

const routes: Routes = [
    { path: '', component: Cardscomponent,
    children :[
      { path: ':id', component: CardDetailsComponent}
    ]
    }
]

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

localhost:4200/card 正在工作 但 localhost:4200/card/1234 不工作,也没有出现任何错误,任何帮助...

【问题讨论】:

  • 没有出现任何错误,没有进入详情页
  • 您不必在父母中处理孩子的路线。尝试从父路由器中删除 'card/:id'
  • Removed card:id from parent router, url 形成为 localhost:4200/card/1234 但不进入 detailscomponent
  • path: 'id' 应该是path: ':id'
  • 从父路由器中删除了 card:id,url 形成为 localhost:4200/card/1234 但不进入 detailscomponent -- 你在子组件中有一个 router-outlet。通常缺少路由器插座会导致此类问题[URL更改但组件未呈现]

标签: javascript angular


【解决方案1】:

检查子组件中是否有router-outlet

当 url 更新但视图未呈现时,通常归结为缺少 router-outlet。 从开发带有角度元素的整个项目中学到了这一点。

如果您启用跟踪,您可以看到所有路由器事件都成功触发。

【讨论】:

  • 是我的两个路由器文件都是正确的,你能举个例子如何使用子路由
猜你喜欢
  • 1970-01-01
  • 2017-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多