mat-expansion-panel 主体不适用于 ngFor

fri*_*ode 4 frontend angular-material angular

我正在尝试实现一个 mat-accordion,其中 mat-expansion-panels 主体显示数组的信息。数组没有固定长度,所以我尝试使用 *ngFor 向主体添加内容。但身体仍然是空的。

我检查了 for 循环是否正确访问了对象,它确实如此,并向扩展面板添加多个段落也有效。我不知道是否根本不支持在 mat-expansion-panel 中使用 ngFor 添加内容。

html

<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>
Run Code Online (Sandbox Code Playgroud)

ts

days = [
    {
      date: "Mon 01", 
      subDay: [
        {
          name: "morning"
        }, 
        {
          name:"afternoon"
        },
        {
          name: "evening"
        },
        {
          name: "night"
        }
      ]
    }
 ]
Run Code Online (Sandbox Code Playgroud)

这是重新创建的问题。

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

我希望扩展面板在扩展面板时也有“早上”、“下午”、“晚上”和“晚上”。

NTP*_*NTP 6

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

<p *ngFor="let subDay of day.subDay" class="grid5">
  {{subDay.name}}
</p>
Run Code Online (Sandbox Code Playgroud)

演示


小智 5

我觉得这对你有帮助

*ngFor="let name of days.subDay"

{{name.name}}