Angular 4 ngFor 使用 HTML 循环遍历对象数组

Rob*_*eck 2 arrays for-loop typescript ngfor angular

我正在使用 Angular 4,我想遍历一组对象并在 Angular Material 网格图块中显示信息。我的 html (app.component.html) 看起来有点像这样

<div class="list" *ngIf="listContacts == true">
 <mat-grid-list cols="3" rowHeight="2:1" *ngFor="let i of contacts">
  <mat-grid-tile>
    <div class="card">
      <img src={{contacts[i].image}} alt="picture">
      <h2>{{contacts[i].name}}</h2>
    </div>
  </mat-grid-tile>
 </mat-grid-list>
</div>
Run Code Online (Sandbox Code Playgroud)

而contacts 是app.component.ts 中的一组对象。联系人中有九个对象,但为简单起见,我在这里只放了两个。

export class AppComponent {
// array of contact objects
contacts = [
{
  name: "Robbie Peck",
  image: "src/assets/robbie.jpg",
}, 
{
  name: "Jenny Sweets",
  image: "src/assets/jenny.jpg",
}, 

...

]
}
Run Code Online (Sandbox Code Playgroud)

因此,与其出现九个不同的 's ,每个都有自己的信息(通过联系人循环 i ),我只有一个并且控制台显示一个错误,它无法识别联系人 [i]。我做错了什么?我怎样才能让 9 的,每个都有名称和图像 i 在打字稿(app.component.ts)文件中的联系人对象中?

Saj*_*ran 6

您不必传递索引,您只需使用变量i并访问i.imagei.name

<mat-grid-list cols="3" rowHeight="2:1" *ngFor="let i of contacts" >
 <mat-grid-tile>
    <div class="card">
      <img src={{i.image}} alt="picture">
      <h2>{{i.name}}</h2>
    </div>
  </mat-grid-tile>
Run Code Online (Sandbox Code Playgroud)