我如何知道过滤器中元素的数量(| filter:foo)

时间:2018-05-15 21:58:26

标签: angularjs

我想执行验证,如果在制作过滤器时没有元素,则隐藏div,否则将显示。这是我的代码:

<!-- show/hide this div depends if exist coincidence on the filter -->
<p class="text-center txt_color_azul_oscuro tip_fuen_roboto_l txt_sm">elements:</p>


<div class="col-12 col-sm-12 col-md-6 col-lg-6" ng-repeat="item in faqs" ng-show="([item] | filter: search).length ">
.
.
.
</div>

<input class="field" type="text" type="text" ng-model="search" required>

1 个答案:

答案 0 :(得分:0)

您正在使用ng-show来限制div的演示。现在,ng-show需要一个评估为truefalse的条件(如果true,则显示)。当您仅作为参数保留一个值(在您的情况下)时,AngularJS将其视为:如果对象存在则为TRUE,否则为FALSE 。由于数组的长度确实存在(即 0 ),因此评估结果为 TRUE

为了得到你想要的东西,你需要记录:

<div class="col-12 col-sm-12 col-md-6 col-lg-6" 
     ng-repeat="item in faqs" 
     ng-show="([item] | filter: search).length ">

成为:

<div class="col-12 col-sm-12 col-md-6 col-lg-6" 
     ng-repeat="item in faqs" 
     ng-show="([item] | filter: search).length > 0 ">

这如何澄清事情并解决您的问题。