ng-repeat过滤器,在过滤器删除了对象时显示消息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ng-repeat过滤器,在过滤器删除了对象时显示消息相关的知识,希望对你有一定的参考价值。

我的一些人是忍者,有些则不是。

如果他们不是,我想显示this guy isn't a ninja消息。

现在,没有任何东西在显示。我是否错误地使用过滤器?

我想在视图中处理这个问题,而不向控制器添加任何新逻辑。

<div ng-repeat="person in people | filter: {job: 'ninja'}">
    <div ng-show="person">
        This guy is a ninja
    </div>
    <div ng-show="!person">
        This guy isn't a ninja <--Not showing 
    </div>
</div>
答案

您不是在寻找过滤器,而是在寻找“ng-show”声明:

<div ng-repeat="person in people">
    <div ng-show="person.job === 'ninja'">
        This guy is a ninja
    </div>
    <div ng-show="person.job !== 'ninja'">
        This guy isn't a ninja
    </div>
</div>

> Demo fiddle

另一答案

您目前正在过滤掉每个没有工作的人ninja。如果你想让ninjanon-ninja出现在ng-repeat中,你将不得不删除过滤器并使用ng-show来确定显示的内容。

<div ng-repeat="person in people">
    <div ng-show="person.job === 'ninja'">
        This guy is a ninja
    </div>
    <div ng-show="person.job !== 'ninja'">
        This guy isn't a ninja 
    </div>
</div>
另一答案

移动这些案例并使用ng-show进行处理我不会建议您将来遇到更多案例,因此您可能会使用切换案例,当您过滤数据时,您只剩下过滤结果数组是过滤后的新数组

<div ng-repeat="person in people ">
    <div ng-switch="person">
  <div ng-switch-when="ninja">this is Ninja</div>
  <div ng-switch-default>this is not ninja</div>
</div>

以上是关于ng-repeat过滤器,在过滤器删除了对象时显示消息的主要内容,如果未能解决你的问题,请参考以下文章

仅在应用过滤器时显示 bootstrap-vue b-table 中的项目

Jquery 搜索过滤器 - 未找到结果时显示默认消息

过滤掉所有其他选项时显示隐藏的 mat-option

我可以在过滤批处理文件(cmd)中的某些格式时显示目录中的文件吗?

使用 ng-repeat 和过滤器时数组中对象的 $index

根据子对象属性过滤 ng-repeat 列表