routing - 带有动态选项卡的角度路由

标签 routing

我正在尝试创建一个支持带路由的动态选项卡的角度应用程序。 我在这里找到了这个很好的起点 https://technology.amis.nl/2019/07/05/dynamic-tabs-with-angular-6-and-ng-bootstrap/

上述解决方案的问题在于,当隐藏选项卡时,内容组件会被破坏。

要求组件隐藏,切换标签时不销毁,以保持组件状态。

在 ngb-tabset 上设置 destroyOnHide 属性会导致存在多个路由器导出,并且不起作用。

保留状态并让顶层按预期工作的一种方法是绕过以移除路由器 socket

      <ngb-tab *ngFor="let tab of tabs ; let index = index" [id]="tab.url">
          <ng-template ngbTabTitle>
              <span>{{tab.name}}</span>
              <span (click)="closeTab(index, $event)">&times;</span>
          </ng-template>
          <ng-template ngbTabContent>
              <ng-container *ngIf='tab.url =="/movies"'>
                  <app-movies></app-movies>
              </ng-container>
              <ng-container *ngIf='tab.url && tab.url.startsWith("/songs")'>
                  <app-songs></app-songs>
              </ng-container>
          </ng-template>
      </ngb-tab>
  </ngb-tabset>

这适用于顶级选项卡,但会阻止嵌套路由工作,例如 [routerLink]='/songs/1' 将不起作用。

尝试使用辅助路由也失败了。缺少手动处理路由器事件,我看不到前进的方向。任何建议表示赞赏。

最佳答案

我看到这个问题很老了,但无论如何我都遇到了同样的问题。

不错的解决方案是使用自定义 RouteReuseStrategy。

使用自定义策略,您可以在不破坏不需要的组件的情况下分离然后重新附加它。

关于routing - 带有动态选项卡的角度路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58752888/

相关文章:

ruby-on-rails - 不要在 Rails 根路由中发布表单

php - Symfony 在生产中禁用 Controller 操作

asp.net-mvc - 如何在 ASP.NET MVC 中使用查询字符串路由 URL?

wcf - 向 WCF 4 路由服务错误处理添加新的异常类型

html - 无法在Angular的innerHTML中呈现routerLink

php - 当我使用不存在的路由访问类时,如何在 codeIgniter 中设置默认函数?

ruby-on-rails - Rails - 存在路由时 API 命名空间的路由错误

grails - Grails可以通过*方法*将请求路由到其他 Controller 吗?

ruby-on-rails - Rails3 : Appropriate use of routing and resources