使用 ngIf withngFor
虽然不允许在同一个 div 中使用*ngIf 和*ngFor(它会在运行时出错),但你可以将*ngIf 嵌套在*ngFor 中以获得所需的行为。
示例 1:一般语法
<div *ngFor="let item of items; let i = index">
<div *ngIf="<your condition here>">
<!-- Execute code here if statement true -->
</div>
</div>
示例 2:显示具有偶数索引的元素
<div *ngFor="let item of items; let i = index">
<div *ngIf="i % 2 == 0">
{{ item }}
</div>
</div>
缺点是需要添加额外的外部 div 元素。
但是考虑一下需要迭代 div 元素的这个用例 (使用* ngFor),并且还包括检查是否需要删除元素(使用* ngIf),但是不希望添加额外的 div。在这种情况下,你可以使用 template 标签作为* ngFor:
<template ngFor let-item [ngForOf]="items">
<div *ngIf="item.price > 100">
</div>
</template>
这样就不需要添加额外的外部 div,而且 <template> 元素也不会添加到 DOM 中。从上面的例子中添加到 DOM 中的唯一元素是迭代的 div 元素。
注意:在 Angular v4 中,<template> 已被弃用,转而使用 <ng-template>,并将在 v5 中删除。在 Angular v2.x 版本中,<template> 仍然有效。