【发布时间】:2017-04-12 01:04:01
【问题描述】:
以下是我的部分 angular2 组件模板 html。 "searchTickets$" 是一个 Observable 对象数组。
<table class="table table-condensed" *ngIf="searchTickets$">
<thead>
<tr>
<th><h3>Ticket ID</h3></th>
</tr>
</thead>
<tbody>
<tr *ngFor="let ticket of searchTickets$ | async">
<td><small>{{ticket.ticketID}}</small></td>
</tr>
</tbody>
</table>
我的意图是只有当 observable 时才显示表格 返回 1 条或多条记录。
需要在 *ngIf 条件中修改什么来实现这一点。
【问题讨论】:
-
什么都没有,尝试初始化你的 searchTickets,删除 ngIf,如果数组为空,则不会显示任何内容,搜索后你将该数组设置为响应数据,如果响应有东西,它将呈现该元素
-
你试过
*ngIf="(searchTickets$ | async).length"吗? -
@ PierreDuc ,是的,它会抛出“Cannot read property 'length' of null”错误。
-
最初 tit 将是 null ,您需要先像这样进行安全检查: *ngIf="(searchTickets$ | async)?.length"