提问者:小点点

Angular:两个没有名字的插座仍然工作


我似乎不知道这是如何工作的,我有一个带有两个router-outure标签的应用程序。 这两个标签都没有与之相关联的名称,那么组件如何显示在正确的出口中呢?

const routes = [
  {
    path: 'login',
    component: LoginComponent
  },
  {
    path: 'user',
    component: HomeComponent,
    children: [
      {
        path: 'settings',
        component: SettingsComponent
      },
      {
        path: 'profile',
        component: ProfileComponent
      }
    ]
  }
]

然后在AppComponent模板中显示了以下内容,它显示了LoginComponentHomeComponent

<header></header>
<main>
  <router-outlet></router-outlet>
</main>
<footer></footer>

然后在homeComponent模板中有这样的代码,它显示了SettingsComponentProfileComponent

<ul class="nav"></ul>
<div class="content">
  <router-outlet></router-outlet>
</div>

根据我所读到的,你需要有一个命名的出口,并告诉路径哪个出口渲染。 为什么我这里不需要一个? 这个还能用。 发生什么事了? 我在谷歌上找不到理由,除了使用一个有名字的路由。


共1个答案

匿名用户

嵌套的主路由器出口工作良好,非常常用,事实上,这是父/子路由工作的唯一方式。

通过嵌套出口,路由器可以根据路由配置的父/子结构非常直观地确定要呈现的内容。

只有当命名的奥特莱斯是兄弟姐妹时,您才需要命名的奥特莱斯。