在Angular Material手风琴中打开第一个连接的扩展面板

时间:2018-10-26 15:31:41

标签: javascript html angular angular-material accordion

显然,您可以在Angular Material扩展面板上使用输入expanded来默认加载时打开的特定面板。但是,我有一个手风琴,其中所有扩展面板都是动态生成的,并且都是可选的,但是我想打开第一个面板。

我可以遍历使用模板的每个ngFor来生成面板以查看其是否存在,然后在第一个索引上添加属性,但是有几个循环可以拉入模板,并且看起来乱。我希望能够在视图完成后从mat-accordion中获取一些属性,以查看哪个是手风琴上的第一个属性并添加该属性,但是看来这是不可能的。有人知道有什么办法可以做到吗?

2 个答案:

答案 0 :(得分:6)

您可以使用first变量,我进行了一次堆叠闪电射击,可以看到here

您可以这样做:

<mat-accordion class="example-headers-align">
  <mat-expansion-panel *ngFor="let item of [1,2,3]; first as isFirst" [expanded]="isFirst">
    <mat-expansion-panel-header>
      <mat-panel-title> {{item}} </mat-panel-title>
    </mat-expansion-panel-header>
    {{item}}
  </mat-expansion-panel>
</mat-accordion>

您可以查看here*ngFor变量的使用以了解更多信息。

答案 1 :(得分:3)

您是否尝试过使用ngFor“第一个”局部变量? 通过这种方式:

full_domain_path = request.env['rack.url_scheme'] + '://' + request.host_with_port