显然,您可以在Angular Material扩展面板上使用输入expanded
来默认加载时打开的特定面板。但是,我有一个手风琴,其中所有扩展面板都是动态生成的,并且都是可选的,但是我想打开第一个面板。
我可以遍历使用模板的每个ngFor
来生成面板以查看其是否存在,然后在第一个索引上添加属性,但是有几个循环可以拉入模板,并且看起来乱。我希望能够在视图完成后从mat-accordion
中获取一些属性,以查看哪个是手风琴上的第一个属性并添加该属性,但是看来这是不可能的。有人知道有什么办法可以做到吗?
答案 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