Angular ngFor 没有 let item of items 语法

Posted

技术标签:

【中文标题】Angular ngFor 没有 let item of items 语法【英文标题】:Angular ngFor without the let item of items syntax 【发布时间】:2020-12-18 00:32:16 【问题描述】:

我是 Angular 的新手,我只是想了解我是否可以在没有 let 项目的情况下使用 ngFor 指令;让 i = 索引语法

在使用 ngFor 时迭代数组时有没有其他方法可以获取索引

我的示例应用

<div *ngFor="let oddNumber of oddNumbers; let i = index">
   <app-odd *ngIf="oddNumbers[i]" [number]="oddNumbers[i]"></app-odd>
   <app-even *ngIf="evenNumbers[i]" [number]="evenNumbers[i]"></app-even>
</div>

【问题讨论】:

【参考方案1】:

在内部,微语法 *ngFor 扩展为通常的绑定语法 [ngForOf]

例如。

<div *ngFor="let oddNumber of oddNumbers; let i = index">
  ...
</div>

扩展为

<ng-template ngFor let-oddNumber [ngForOf]="oddNumbers" let-i="index">
  <div>...</div>
</ng-template>

没有let oddNumber of oddNumberslet-i="index" 没有任何上下文。因此,如果没有 let oddNumber of oddNumbers 输入,就无法使用 *ngFor 指令。

但是,如果您只想访问循环中的奇数或偶数项,*ngFor 具有布尔局部变量,例如 oddeven,类似于 index

<div *ngFor="let item of items; let i=index; let even=even; let odd=odd">
  <ng-container *ngIf="even">
    <!-- item in even position -->
    ...
  </ng-container>
  <ng-container *ngIf="odd">
    <!-- item in odd position -->
    ...
  </ng-container>
</div>

【讨论】:

【参考方案2】:

似乎这是在 html 文件中保存每个数组项的索引的正确方法:ngFor with index as value in attribute

但是如果你正在寻找其他方法来保存索引,你可以尝试遍历 Ts 文件中的数组,然后根据索引号执行所需的操作。

【讨论】:

以上是关于Angular ngFor 没有 let item of items 语法的主要内容,如果未能解决你的问题,请参考以下文章

Angular 2 嵌套 *ngFor

Angular 2 - NgFor 中与 NgModel 的 2 路绑定

直接在 ngFor Angular 中重复两个元素

Angular io (4) *ngFor first and last

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

Angular 2 ngFor 在索引 + 2 处错误地更改值