Angularjs 如果过滤了子元素,则制作不可见的手风琴

Angularjs make invisible accordion if subelement are filtered

我用 angular 动态创建了手风琴。

代码:

<input type="text" class="form-control pull-left" ng-model="searchSingoloCampo.title">

<accordion-group ng-repeat="category in categories">

    <li ng-repeat="resource in category.resources | filter:searchSingoloCampo">

    </li>
</accordion-group>

手风琴是由列表生成的,每个手风琴内部都有一个元素子列表。 我可以使用简单的 angular 过滤器过滤手风琴内部的元素,但是当元素的子列表完全被过滤器 "filtered" 时,我无法处理主手风琴的可见性。

有什么帮助吗?

谢谢

一种方法是引入另一个变量来存储过滤后的数组的内容。当这个数组的大小为0时,就可以关闭手风琴了。沿着这些线的东西:

<accordion-group ng-repeat="category in categories" close-accodrion="filteredResources.length">
    <li ng-repeat="resource in filteredResources = (category.resources | filter:searchSingoloCampo)">
    </li>
</accordion-group>

我编了 "close-accordion" 属性,不知道你是怎么关闭你的 accordion-group 的。这假设你可以 open/close 它 w/a 像 filteredResources.length 这样的布尔表达式。也许你只是想隐藏它 w/a ng-showng-hide ...同样的方法也可以。

感谢解答!

这是我的处理方式:

<accordion-group ng-repeat="category in categories" ng-show="(category.resources | filter:searchSingoloCampo).length>0">

这样,当元素的子集被过滤时,我处理 "master" 手风琴的可见性!

非常感谢