我试图使用*ngFor
来遍历一组对象。我意识到我不能在同一个元素上使用*ngFor
和*ngIf
,它会返回一个错误。相反,我试图将我的*ngIf
贴在列表项的内容上。但现在,我收到了一堆空的列表项目,它们正在创建并显示在我的视图页面上。使用* ngFor循环访问一个数组,并且* ngIf从数组中选择要列出的元素
我不想将*ngFor
粘在我的<ul>
元素上,因为它会创建一堆带有单个列表项的<ul>
元素。
我希望你们中的一个会有另一种方法来实现这一点。
// AppComponent
// contacts: Contact[]; // An array of `Contact` Objects
<ul>
<li *ngFor="#contact of contacts">
<contact-detail *ngIf="checkList(contact) == true" [contact]="contact"></contact-detail>
</li>
</ul>
和...
// ContactDetailComponent
<img />
<span>{{contact.name}}</span>
<span>{{contact.email}}</span>
正在发生的事情:
<ul>
<li>
<!--template bindings={}--> // ngIf conditional returned true
<img />
<span>Name1</span>
<span>Email1</span>
</li>
<li>
<!--template bindings={}--> // ngIf conditional returned false
</li>
<li>
<!--template bindings={}--> // false
</li>
<li>
<!--template bindings={}--> // true
<img />
<span>Name1</span>
<span>Email1</span>
</li>
</ul>
我使用的材质设计精简版,所以所有这些因素都会有一些CSS属性。空<li>
只返回一定高度的空白空间。
此外,如果需要其他信息,请让我知道。
你应该能够在[beta.8]使用ngFor与ngIf(https://开头的github .com/angular/angular/issues/6304) – Sasxa
感谢您的回复。我意识到我正在使用beta.6 :) –