AngularJS在表格没有行时隐藏表格

AngularJS在表格没有行时隐藏表格,angularjs,html-table,Angularjs,Html Table,当HTML表没有行时,如何有条件地隐藏该表?由于我使用过滤器,我事先不知道结果集是否为空 我正在迭代表行,但是外部表(包括thead)将被渲染,即使没有行。如何内省生成的数组的长度并将该信息用于ng show/ng hide?有一些可能的解决方案,但最好的解决方案取决于您的要求和限制。如果它不是一个庞大的应用程序,并且您不希望在未筛选的数组中有太多的项,那么最好的解决方案可能是简单地使用带有相同筛选器的ng show: ... 但请记住,过滤器将在每个摘要周期中对数组的所有项运行两次。如果性

当HTML表没有行时,如何有条件地隐藏该表?由于我使用过滤器,我事先不知道结果集是否为空


我正在迭代表行,但是外部表(包括thead)将被渲染,即使没有行。如何内省生成的数组的长度并将该信息用于ng show/ng hide?

有一些可能的解决方案,但最好的解决方案取决于您的要求和限制。如果它不是一个庞大的应用程序,并且您不希望在未筛选的数组中有太多的项,那么最好的解决方案可能是简单地使用带有相同筛选器的
ng show


...
但请记住,过滤器将在每个摘要周期中对数组的所有项运行两次。如果性能可能存在问题,那么您可能希望控制器为您消化此值,并将其绑定到您的范围:

controller('YourCtrl',函数($scope,$filter){
//$watchCollection在1.1版中可用+
$scope.$watchCollection('items',函数(newVal){
$scope.filteredItems=$filter('filter')(newVal,$scope.criteria);
});
});
在您的HTML中:


...

请显示您的代码。这可能是一个很好的答案,特别是关于在控制器中进行过滤的建议。我将我的控制器放在这里,并包含了您的解决方案。但是watchcollection没有被调用。使用angular 1.2.6确定,再次尝试。请参阅:我现在正确注册了filter函数,并调用了它。我注意到的唯一奇怪的事情是,对集合中的每个项调用了filter函数get,而不是对整个集合。我以为这个过滤函数应该返回过滤后的数组。提琴不起作用,它们有无效的JS代码,也许你改变了它?@Caioton我在创建MWE时遇到了困难,这些东西只是新的(对我来说)。但是过滤器只接收一个元素而不是数组。因此,它不能按照您的建议返回(和设置)数组。