如何在ng-repeat(键,值)中按值过滤,仅在值不为空时才显示?

时间:2016-08-31 10:43:28

标签: angularjs key-value ng-filter

我有一个具有多个属性的对象,我想过滤掉空的属性。大多数属性不是必需的,可以为null。我无法想象如何为此制作过滤器。

<div class="hero-unit" ng-repeat="(key, value) in selectedItem | valueNotNull">
                            <span class="hero-title">{{key|insertSpaces}} : </span>     
                            <span class="hero-content">{{ value }}</span>

当属性的值为null或为空时,我不想为该特定属性显示英雄单位。并且仍然显示其余的属性。

3 个答案:

答案 0 :(得分:1)

您可以隐藏空值

试试这个

<div class="hero-unit" ng-repeat="(key, value) in selectedItem" ng-hide="!value">
                            <span class="hero-title">{{key|insertSpaces}} : </span>     
                            <span class="hero-content">{{ value }}</span>

答案 1 :(得分:1)

您也可以使用 $(function() { $('#toggle-event').change(function() { $('#console-event').html('Toggle: ' + $(this).prop('checked')) }) })

ng-if

这会隐藏<div class="hero-unit" ng-repeat="(key, value) in selectedItem | valueNotNull" ng-if="value"> <span class="hero-title">{{key|insertSpaces}} : </span> <span class="hero-content">{{ value }}</span> </div> 不是真正的<div>键值对(即为空,未定义等)。

答案 2 :(得分:0)

<div class="hero-unit" ng-repeat="(key, value) in selectedItem | filter:{value:''}">
                            <span class="hero-title">{{key|insertSpaces}} : </span>     
                            <span class="hero-content">{{ value }}</span>

你应该用过滤器检查它(你想要的值不是null)。