【问题标题】:AngularJS : Filter sub-content in ng-repeatAngularJS:过滤 ng-repeat 中的子内容
【发布时间】:2014-04-09 16:50:25
【问题描述】:

这是一个示例 JSON 代码:

 $scope.info = [{"name":"Category1", "data":[{"name":"Item1"}, {"name":"Item2"}]},
                    {"name":"Category2", "data":[{"name":"Item3"}, {"name":"Item4"}]}];

感谢 ng-repeat,我将其放入列表中,并使用搜索框进行过滤,我还按类别对结果进行排序:

<div ng-repeat="Cat in info">
      <h3>{{Cat.name}}</h3>
      <ul>
          <li ng-repeat="Item in Cat.data | filter:search" >
               {{Item.name}}
          </li>
      </ul>
</div>

问题是:当我搜索时,例如“Item3”,它显示了 Category2 中的 Item3,但即使下面没有任何内容,仍然有“Category1”,因为没有过滤类别,只有它们的内容。

那我怎么对 AngularJS 说:“如果 category1 的过滤内容是空的,就不显示”?

【问题讨论】:

    标签: javascript angularjs angularjs-ng-repeat


    【解决方案1】:

    将过滤器的输出分配给一个变量,然后根据它的长度隐藏标题。

    <div ng-repeat="Cat in info" ng-hide="filtered.length == 0">
      <h3>{{Cat.name}}</h3>
      <ul>
          <li ng-repeat="Item in filtered = (Cat.data | filter:search)" >
               {{Item.name}}
          </li>
      </ul>
    </div>
    

    【讨论】:

    • 太棒了!这正是我一直在寻找的。非常感谢。
    猜你喜欢
    • 2015-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多