当前位置: 首页 > 面试题库 >

AngularJS-如果子循环为空,则隐藏父元素(已过滤)

晋越彬
2023-03-14
问题内容

我有一种情况,在这种情况下,我有嵌套循环,其中子循环是由一个以父作为参数的过滤器函数构造的。我还有另一个过滤器,它只是进行文本比较。这是例子

<div ng-repeat="group in groups">
  {{group.name}}
  <div ng-repeat="material in materials | filter:filterByGroup(group) | filter:search ">
    {{material.name}}
  </div>
</div>

现在,我的问题是,当filter:search应用该函数并将其过滤出特定组中的所有结果时,我想隐藏该组(而不要在group.name没有子元素的情况下保持空白)。

我自己的组中没有资料,所以我的父ng-repeat范围中没有该信息。问题是,是否有一种方法可以访问嵌套的ng-
repeat并从父级查看其计数,如果该计数为0,则隐藏父级。

更新

这里是一个小提琴,更好地解释了情况:小提琴

主要问题是我不想将我的资料与小组相关联。如果没有其他办法,我可以这样做,但是如果我仅通过检查嵌套循环就可以做到,这听起来像是一个重载(因为我将需要对结果进行两次基本过滤)。

谢谢


问题答案:

您需要做的是根据一个表达式将ng-show / ng-if包裹在相关区域,该表达式将过滤器应用于数据结构并提取长度。这是您的示例中的工作方式:

  <div ng-show="(materials | filter:filterByGroup(group)).length">
    <div ng-repeat="group in groups">
      {{group.name}}
      <div ng-repeat="material in materials | filter:filterByGroup(group) | filter:search ">
        {{material.name}}
      </div>
    </div>
  </div>

一旦复杂的结构由于过滤而空了,这可以让您隐藏它们,例如结果表。



 类似资料:
  • 我有一个来自服务器的响应,我想把它放到列表中。但是当列表为空时,我需要隐藏这个div容器。例如,如果不在数组中-我想隐藏div。但是我想在ng之后使用bird重复,所以我不能使在上。我可以检查li是否为空,然后隐藏div吗? 普朗克例子 AngularJS ng-重复处理空列表大小写-这是不一样的。如果li是空的,我不想隐藏li,我想在li是空的时候隐藏父元素h1。

  • 我刚刚把我的超文本标记语言转换成WordPress。你可以在这里看到。我选择了每页显示一篇文章。 但是,我注意到我没有'Previous'链接和div。我现在只有'Next'链接和div。 如果我添加了'Previous'链接和div,我如何在我的主页中隐藏它(这里有最新的条目)?我如何在最后一个条目中隐藏“下一个”链接和div,而在最后一个条目页面中只显示“上一个”链接和div? 我想这个主题更

  • 我有一个表与多个条目。在每个条目表行之后是一个编辑表行,带有一个跨列单元格,其中有一个动态加载超文本标记语言的DIV。问题是,当呈现这些空表行时,会导致页面上出现大量额外的空白。 我知道我不能直接将HTML动态加载到单元格中,所以我在单元格中有一个DIV,可以将内容加载到其中。 我想在子DIV为空时隐藏任何表行,并在信息被动态加载到子DIV后显示该表行。这个动态加载的信息也可以删除,所以我需要它再

  • html正在打印表中的所有API数据。产品和组件当组件为空时,表格不应打印产品。最好的方法是什么?我用的是角度8 产品={"id": 1,"name":"John","组件": [ { "id": 130,"name":"Price", } ] "isSelected": false} 产品={“id”:2,“name”:“name”,“components”:[]}

  • 我是Android开发的新手。目前,我正在使用Firestore UI填充RecycerView。它可以正常工作,但现在我希望在RecycerView不包含数据或插入某些内容时动态隐藏/显示该视图。在我的适配器类中重写onDataChanged方法时,我注意到我可以正确地动态检测适配器中的项数是否为0。我如何使用它使我的RecycerView可见或不可见?

  • 如果侧边栏中没有内容,我想隐藏它们,不幸的是,有26.000个函数可以调用你的侧边栏,我对此并不感兴趣。我只想隐藏我的侧边栏,如果它们是空的,当它们包含小部件时显示它们。 现在我不确定是应该使用get_sidebar函数还是dynamic_sidebar函数。另外,我想知道我是否应该使用侧边栏的名称。php调用它或函数中的ID。php