ngIf 未定义的 HTML 检查变量不包括值为 0 时的情况
Posted
技术标签:
【中文标题】ngIf 未定义的 HTML 检查变量不包括值为 0 时的情况【英文标题】:HTML check variable undefined with ngIf excluding case when value is 0 【发布时间】:2018-01-31 07:59:00 【问题描述】:我正在使用 Angular 2,并想使用 htm *ngIf
条件检查变量值是否为 undefined
。
如果我使用<span *ngIf="!testvar">
,它也涵盖了变量testvar = 0
的情况,但我想排除它为0的情况。
以下工作,但这是 2 项检查:
<span *ngIf="!testvar && testvarl != 0"></span>
我想检查这个案例,只有条件可以缩短它并使其更干净。
有没有简单的方法来做到这一点?
【问题讨论】:
【参考方案1】:你可以写:
*ngIf="testvar !== undefined"
【讨论】:
【参考方案2】:如果你也担心 null:
*ngIf="testvar !== undefined && testvar !== null"
【讨论】:
这个可以简写为*ngIf="testvar != undefined"
我相信这也可能是*ngIf="!!testvar"
【参考方案3】:
<ng-template [ngIf]="!!foo">
<p>Hello World</p>
</ng-template>
如果 foo 是未定义或 null 或空字符串,“Hello World”将被隐藏,如果 foo 是数字或布尔值是 true,或者字符串或数组或对象,它将显示 Hello World。
【讨论】:
如果 "foo" 是数字 0,这也是错误的。并且 [ngIf] 应该是 *ngIf【参考方案4】:尽管这是一个老话题,但这是一个可以帮助他人的可能解决方案:
<span *ngIf="isValid(testvar)"></span>
isValid(str: String)
return typeof str !== 'undefined' && str != 0;
【讨论】:
以上是关于ngIf 未定义的 HTML 检查变量不包括值为 0 时的情况的主要内容,如果未能解决你的问题,请参考以下文章