Angular子路由不会自己加载并且加载父组件

Jag*_*esh 1 angular-ui-router angular angular4-router

我试图基于亲子概念导航我的Angular应用程序。在加载时,父组件(而不是子组件)被加载,但网址似乎

const appRoute: Routes = [
  { path: 'home', component: HomeComponent },
  { path: 'dashboard', component: DashboardComponent },
  {
    path: 'solutions', component: SolutionComponent,
    children: [
      { path: 'cog', component: CogComponent }
    ]
  },
  { path: 'portfolio', component: PortfolioComponent },
  { path: '**', component: PortfolioComponent }
];
Run Code Online (Sandbox Code Playgroud)

当我运行solutions/cog它重定向到,SolutionComponent但它应该加载CogComponent

编辑:1

当我使用它会工作

const appRoute: Routes = [
  { path: 'home', component: HomeComponent },
  { path: 'dashboard', component: DashboardComponent },
  { path: 'solutions', component: SolutionComponent },
  { path: 'solutions/cog', component: CogComponent },
  { path: 'portfolio', component: PortfolioComponent },
  { path: '**', component: PortfolioComponent }
];
Run Code Online (Sandbox Code Playgroud)

但我希望它应该从上述方法加载。

请帮助解决此问题。

j4r*_*rey 6

...
{
    path: 'solutions', component: SolutionComponent,
    children: [
        { path: 'cog', component: CogComponent }
    ]
},
...
Run Code Online (Sandbox Code Playgroud)

由于您已经component为路径声明了a ,solutions因此该路径SolutionComponent将显示CogComponent并在嵌套中呈现router-outlet

{ path: 'dashboard', component: DashboardComponent },
{
    path: 'solutions'
    children: [
        { path: 'cog', component: CogComponent },
        { path: '', component: SolutionComponent, pathMatch: 'full'}
    ]
},
...
Run Code Online (Sandbox Code Playgroud)

上面的路线应该可以正常工作。