嵌套 *ngFor* 和 *ngIf [重复]

Posted

技术标签:

【中文标题】嵌套 *ngFor* 和 *ngIf [重复]【英文标题】:Nested *ngFor* with *ngIf [duplicate] 【发布时间】:2017-05-23 21:18:24 【问题描述】:

问题

在下面的代码中,我试图根据它们的类别显示Tab 下的所有Projects(对象)。

类别必须相同。

编辑:如果不清楚,请查看here。

这是我的代码:

<md-tab-group>
    <md-tab *ngFor="let tab of tabs">

        <template md-tab-label>
            tab.name
        </template>

        <h1 *ngFor="let project of projects" *ngIf="tab.category == project.category">
            Project Name: project.name
        </h1>

    </md-tab>
</md-tab-group>

我想要达到的目标:

我正在尝试遍历选项卡并将每个选项卡的名称添加到选项卡的“模板”中。

然后,我正在尝试遍历项目,如果项目的类别与选项卡的类别匹配,那么它将显示在选项卡下。

由于某种原因,它似乎不起作用。我做错了吗? 对不起,我的逻辑,过去 2 天一直醒着!

【问题讨论】:

category 上的大小写是否匹配?还是他们的数值 它不起作用,因为在同一个指令中不能有 2 个带星号的结构指令。 我猜你在找这个:***.com/questions/34164413/… 糟糕,应该使用===,因为它们都是字符串。 【参考方案1】:

不支持在一个元素上使用*ngIf*ngFor(或通常多个结构指令)。

您可以使用辅助元素 &lt;ng-container&gt;*ngIf*ngFor 应用于两个不同的元素,而无需将另一个元素添加到 DOM 中

<ng-container *ngFor="let project of projects">
  <h1 *ngIf="tab.category == project.category">
      Project Name: project.name
  </h1>
</ng-container>

另见*ngIf and *ngFor on same element causing error

【讨论】:

谢谢,这就是我要找的。我有点怀疑是这个原因。编辑:我会在 6 分钟内接受你的回答。

以上是关于嵌套 *ngFor* 和 *ngIf [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Angular *ngFor嵌套循环[重复]

Angular 2 *ngFor的数组/ json渲染中的深层嵌套json到数组[重复]

Firebase列表的嵌套Angular2 ngFor指令[重复]

<td></td> 元素上的 *ngIf 和 *ngFor [重复]

不能在 *ngFor 内使用 *ngIF :angular2 [重复]

Angular2中嵌套ngFor循环的计数器