如何在 ng-repeat(key, value) 中按值过滤并仅在值不为 null 时显示?

How can I filter by value in ng-repeat(key, value) and only display if the value is not 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 或空时,我不想显示特定 属性 的英雄单位。并且仍然显示其余属性。

<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>

你应该用过滤器检查它(你不想为空的值)。

您可以隐藏空值

这样试试

<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>

您也可以使用 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> 键值对,其中 value 不为真(即为空、未定义等)。