我的ngIf Else无法在Angular 6中按预期工作

时间:2018-09-28 10:29:59

标签: angular

我有这段代码应该在变量blockusers不为空时显示数据(有效),但是当其为空时应显示Nought,nil,nada,nothing,zero,zilch和zip; ...而且我看不到任何地方的错误。

<div class="col-lg-9" *ngIf="blockusers; else zipZeroResults">
 I'm getting results and I will show them!
</div>
<ng-template #zipZeroResults>
  Nought, nil, nada, nothing, zero, zilch and zip.
</ng-template>

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您正在对数组进行真实检查,如果数组引用本身不是truenull,则该数组将始终返回undefined。如果数组为空(无元素),它甚至会返回true。

您的真实性检查应在数组的length上进行。然后,如果数组为空(长度= 0),它将对表达式的计算结果为false,这就是您所期望的。

*ngIf="blockusers?.length; else zipZeroResults"

这将检查长度,但如果数组本身未定义或为空(使用Safe Navigation Operator),则不会引发错误。