javascript - 使用子路由,但不要在 router-outlet 中渲染它们

标签 javascript angular

我有一段代码,其中路由器配置如下所示:

  {
    path: 'users',
    component: UsersComponent,
    children: [
      {
        path: 'add',
        component: AddUserComponent
      }
    ]
  }

我想有两个页面:

  • /users - 显示用户列表
  • /users/add - 显示添加新用户的表单

但我不知道要嵌套 router-outlet 标签。我想在同一个主容器中呈现这两个页面,即 app-root。我知道我可以通过以下方式做到这一点:

  {
    path: 'users',
    component: UsersComponent
  },
  {
    path: 'users/add',
    component: AddUserComponent
  }

但您可能同意我的看法,这不是一个好的解决方案,使用子构造会很好。

我该怎么做?

最佳答案

如果您没有为路由分配组件,则不需要嵌套路由 => 只是不要将组件添加到 users 路由的定义中,并创建一个专用的列表页面的空路径:

  {
    path: 'users',
    children: [
      {
        path: '',
        component: UsersComponent
      },
      {
        path: 'add',
        component: AddUserComponent
      }
    ]
  }

这里有一个缺点:如果您在 UsersComponent 中使用 routerLink,您将在其中使用相对路径,则空路径仍将表现为路径。因此,您需要使用类似于 ../add 的相对路径,而不是通常人们认为的 ./add

关于javascript - 使用子路由,但不要在 router-outlet 中渲染它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48783955/

相关文章:

javascript - 使用 Javascript 使用 createDocumentFragment 添加长 html

javascript - PassportJS 回调在 http 和 https 之间切换

javascript - 显示多个选择器中的 1 个

javascript - 如何使用 VueJS 在点击 X 时关闭横幅(在移动设备上)

angular - 使组件测试具有主体或模拟 Renderer2

html - Angular 5(及更多): HTMLElement with @ViewChild

javascript - CSS slider 在 FireFox 中不起作用

javascript - Ionic2函数setInterval无法获取参数

node.js - Angular 4 和 SEO

javascript - Google 图表的访问限制