我試圖對象的Array屬性遍歷如下:錯誤迭代對象的嵌套Array屬性使用* ngFor
<p>
Editing Course : {{course?.name}}<br/>
Course Outward Par : {{course?.getOutwardPar('MEDAL')}}<br/>
Course Outward Yards : {{course?.getOutwardYards('MEDAL')}}
</p>
<div class="container">
<h1>Course Form</h1>
<form (ngSubmit)="onSubmit()" #heroForm="ngForm">
<div class="form-group">
<table>
<tr>
<td><label for="name">Name</label></td>
<td><input type="text" class="form-control" id="name" name="name" required
[(ngModel)]="course && course.name">
</td>
</tr>
<tr>
<input type="number" class="form-control" id="hole1" name="hole1" required
[(ngModel)]="course && course.holes[1].tees['MEDAL'].par">
</tr>
<!--
--- BROKEN HERE---
-->
<tr *ngFor="let hole of course?.holes">
<td>{{hole.name}}</td>
</tr>
</table>
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
</div>
一切之前,*預期包括以下這樣的財產ngFor工作course
的holes
肯定可以被認爲是一個數組。沒有?
<input type="number" class="form-control" id="hole1" name="hole1" required
[(ngModel)]="course && course.holes[1].tees['MEDAL'].par">
的ngFor觸發錯誤:
無法找到一個不同支承對象類型「對象」的「[對象的對象]」。 NgFor僅支持與陣列等Iterables綁定。
這裏有一些dicusssion https://github.com/angular/angular/issues/6392關於這個問題。 robwormald的帖子表明,在這種情況下可以使用操作器。
爲什麼出現?在洞裏當然了?holes –
@MiteshPant:接收異步數據的安全操作符,所以在數據到達之前應用程序不會拋出錯誤來加載視圖:) – Alex
http://www.syntaxsuccess.com/viewarticle/ elvis-operator-in-angular-2.0 –