ng-show无法检查null或空字符串

时间:2019-03-13 14:38:59

标签: html angularjs ng-show

Am试图根据条件显示html元素。就像我必须检查claim.claimToDealerCurrencyExchangeRate为空还是空。如果它是emptynull,那么我不想显示该元素(label和span)。

但是它没有按预期工作。标签和跨度元素可见,即使claim.claimToDealerCurrencyExchangeRate为空。

请在下面找到我的代码。

 <div id="exchange" ng-if="hasClaimGrouping('customerInvoiceOrRepairDate')" 
      ng-show="claim.claimToDealerCurrencyExchangeRate == null"
      class="form-group row">
    <label class="col-lg-3">{{'claim.view.exchangeRateApplied'|translate}}
    </label>
    <span>{{claim.claimToDealerCurrencyExchangeRate}}</span>
 </div>

2 个答案:

答案 0 :(得分:0)

是否同时使用ng-if和ng-show?我认为其中之一就足够了。 ngIf指令根据表达式删除或重新创建DOM树的一部分。如果分配给ngIf的表达式的值为假,则将该元素从DOM中删除,否则将该元素的克隆重新插入DOM。

答案 1 :(得分:0)

您的代码具有ng-show =“ claim.claimToDealerCurrencyExchangeRate == null”,这意味着当Claim.claimToDealerCurrencyExchangeRate为null时,该div将可见。根据您的要求,您的逻辑是错误的。使用ng-hide =“ claim.claimToDealerCurrencyExchangeRate == null”或ng-show =“ claim.claimToDealerCurrencyExchangeRate!= null”。但是,由于您已经在使用ng-if,因此应该合并其中的所有条件,除非您绝对希望DOM元素在可见性和非可见性之间多次切换并且不希望每次都对其进行重新实例化,请结合使用ng-if和ng-show。 另外,了解空和null是JavaScript中的两件事。例如,如果value是一个变量。然后value =“”为空,但不为null。 value =“ null”不是null,而是非空字符串。显式设置值= null,则它为null。而且在所有情况下值都不是不确定的。检查正好设置了claim.claimToDealerCurrencyExchangeRate,并在ng-show中适当定义您的逻辑。