2016-03-07 73 views
2

我在我的AngularJS 1.4.3应用程序中使用了一个过滤器。 我会做的是,如果vm.nightServices被过滤,一个没有条目显示(所有都被过滤)比div容器应该隐藏。我试过ng-show =“vm.nightServices.length> 0”但它不起作用。如何在angularJS中过滤所有条目时隐藏容器?

<div ng-show="vm.nightServices.length > 0" ng-repeat="nightService in vm.nightServices | filter:institutionOfUserFilter.institutionName"> 

回答

3

您可以在您的ng-repeat中创建一个新的过滤列表,您可以在其中查看ng显示的长度。

<div ng-repeat="nightService in filtered = (vm.nightServices | filter:institutionOfUserFilter.institutionName)" ng-show="filtered.length > 0"> 
2

如果要隐藏父DOM元素,请使用$ filter过滤您的控制器列表。将结果存储在范围中并使用该结果。

注意:如果你这样做,如果这个列表可以改变,你必须在列表中添加一个$ scope。$ watch来更新已过滤的列表。