【问题标题】:Angular 2 dynamic nested router outletsAngular 2 动态嵌套路由器插座
【发布时间】:2017-04-17 23:23:15
【问题描述】:

我有一个场景,我必须复制快速编辑在 wordpress 上的工作方式。

根据我的了解,您可以像这样在路由器插座上执行此操作

<div>
    <router-outlet></router-outlet>
    <router-outlet name="quick"></router-outlet>
</div>

您可以通过输入 localhost:4200/users(quick:quick-edit) 来使用它。

现在我的场景是我想将所有用户加载到一个网格上。网格下 会有 3 个小按钮 Edit |快速编辑 |垃圾

当我单击编辑时,它将在新页面上调用编辑。所以使用路由器插座
/router-outlet 只能正常工作,但是如果我单击快速编辑 它仍会在网格中显示用户并将所选行更改为快速编辑表单。根据这种情况,它应该看起来像这样

<router-outlet>
     <table>
         <tr>

         </tr>
         <router-outlet name="quick"></router-outlet>
     </table> <!-- It will be loaded once quick edit is pressed -->
</router-outlet>

但似乎不可能?有什么想法或解决办法让它工作吗?

【问题讨论】:

  • 这可以通过多种方式完成,但是您的组件是如何分开的? quick-editedit 是同一个组件吗?
  • 不,它们是不同的
  • Edit 将加载 FormUserComponent,而 Quick Edit 将加载 FormQuickUserComponent 包括用户网格,然后它将隐藏我单击 Quick Edit 的行并显示快速编辑表单

标签: angular angular2-routing


【解决方案1】:

当编辑和快速编辑都相同时,您无需在表格组件内使用单独的路由器。但是你可以把它当作

主路由器插座

<router-outlet></router-outlet>

表格组件应为

<table>
    <tr *ngFor="let user of users"></tr>
    <quick-edit-component *ngIf="user.quickEdit" [user]="user"> </quick-edit-component>
</table>

可以使用 url 路由完整的编辑。

网址:->

localhost:2000/users              ------------users table view

localhost:2000/users/edit/:id     ------------users full edit view

the quick edit will have no route path

【讨论】:

  • 所以在加载网格后立即加载快速编辑表单然后隐藏它是可以的。无论如何,您的答案是我认为的最佳解决方案。我想知道为什么嵌套路由器插座是不可能的。
猜你喜欢
  • 2018-08-18
  • 1970-01-01
  • 2020-05-16
  • 2018-07-28
  • 2016-12-30
  • 2017-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多