关于angular:mat-expansion-panel主体不适用于ngFor

mat-expansion-panel body won't work with ngFor

我正在尝试实现mat手风琴,其中mat-expansion-panels主体显示数组的信息。该数组没有固定长度,因此我尝试使用* ngFor将内容添加到正文中。但是身体仍然是空的。

我检查了for循环是否正确访问了该对象,并且这样做了,并且向扩展面板添加了多个段落也可以正常工作。
我不知道是否不支持在mat-expansion-panel内部添加ngFor内容。

html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<mat-accordion>
  <mat-expansion-panel *ngFor="let day of days">
    <mat-expansion-panel-header>
      <mat-panel-title>
        {{day.date}}
      </mat-panel-title>
    </mat-expansion-panel-header>
    <p>Works without *ngFor</p>
    <p>Multiple work aswell</p>
    <p *ngFor="let subDay of day.subDay" class="grid5">
      {{subDay.name}}
    </p>
    </mat-expansion-panel>
</mat-accordion>

ts

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
days = [
    {
      date:"Mon 01",
      subDay: [
        {
          name:"morning"
        },
        {
          name:"afternoon"
        },
        {
          name:"evening"
        },
        {
          name:"night"
        }
      ]
    }
 ]

这是重新创建的问题。

https://stackblitz.com/edit/angular-fgo3zv

我希望扩展面板在扩展面板时也会有"早上","下午","晚上"和"夜晚"。


我认为这对您有帮助,

* ngFor = "让名称为days.subDay "

{{name.name}}


您的代码是正确的,问题在于您的内部* ngFor应该是以下内容而不是day.daily_division,因为您天对象内的数组名称是subDay而不是daily_division。

1
2
3
<p *ngFor="let subDay of day.subDay" class="grid5">
  {{subDay.name}}
</p>

演示