指令routerLinkActive在组件中作为参考不可见

mf-multi-level-nav-模板组件

<div class="mf-ml-nav-item" *ngFor="let link of links">
  <mat-divider *ngIf="link.separated" class="l-margin-bottom-8 l-margin-top-8"></mat-divider>
  <mat-expansion-panel *ngIf="link.children && !link.master; else simpleLink" [expanded]="rla.isactive" class="mat-elevation-z0 mf-ml-nav-item-expansion">
    <mat-expansion-panel-header class="mf-multi-level-nav-item-header" [replaceUrl]="false" routerLinkactive #rla="routerLinkactive" [routerLink]="link.path ? link.path : null" [routerLinkactiveOptions]="{ exact: false }" collapsedHeight="48px" expandedHeight="48px">
      {{link.label}}
    </mat-expansion-panel-header>
    <mf-multi-level-nav [links]="link.children"></mf-multi-level-nav>
  </mat-expansion-panel>
  <ng-template #simpleLink>
    <a mat-button class="mf-ml-nav-item-link" routerLinkactive="is-active" [routerLink]="[link.path]">{{link.label}}</a>
  </ng-template>
</div>

问题在于页面上仅可见第一个链接,其余链接被添加到DOM中,尽管不可见(找不到任何样式使它们可见)。在将angular-material和angular / cdk从6.4.7版本更新到7.3.7之后,此功能将停止工作,并且仅在Edge中的Chrome和Firefox中可见,并且工作正常。

  • 我的第一个怀疑是,rla在WebStorm中以MAtExpansionPanelHeader的身份显示,而不是以routerLinkactive的身份显示,尽管这种行为是在更新之前进行的,然后链接可以正确呈现

  • 第二个怀疑是该递归组件结构,该组件是递归嵌套的,可能丢失了引用,请尝试制作类似于此结构的东西-> https://gist.github.com/arniebradfo/5cf89c362cc216df6fc1d9ca4d536b72但没有成功

对此的任何帮助,如果还有其他可能性将扩展属性标记为活动链接,这也可以

xin34140 回答:指令routerLinkActive在组件中作为参考不可见

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2583028.html

大家都在问