當表格沒有行時,如何有條件地隱藏HTML表格?因爲我使用過濾器,所以我不知道結果集是否爲空。AngularJS在表格沒有行時隱藏表格
我遍歷錶行,但外表(包括thead)將得到呈現,即使沒有行。我該如何反思結果數組的長度並將這些信息用於ng-show/ng-hide?
當表格沒有行時,如何有條件地隱藏HTML表格?因爲我使用過濾器,所以我不知道結果集是否爲空。AngularJS在表格沒有行時隱藏表格
我遍歷錶行,但外表(包括thead)將得到呈現,即使沒有行。我該如何反思結果數組的長度並將這些信息用於ng-show/ng-hide?
有一些可能的解決方案,但最好的解決方案取決於您的要求和限制。如果它不是一個巨大的應用程序,你不希望在你的未經過濾的數組的項目太多,最好的解決辦法是可能簡單地用一個ng-show
具有相同的過濾器:
<table ng-show="(items | filter:criteria).length">
<tr ng-repeat="item in items | filter:criteria">...</tr>
</table>
但是要記住您的過濾器將在每個摘要循環中遍歷數組的所有項目兩次。如果性能可能是一個問題,那麼你可能希望你的控制器來消化這個值你,只是把它綁定到你的範圍:
controller('YourCtrl', function($scope, $filter) {
// $watchCollection available in version 1.1+
$scope.$watchCollection('items', function(newVal) {
$scope.filteredItems = $filter('filter')(newVal, $scope.criteria);
});
});
,並在你的HTML:
<table ng-show="filteredItems.length">
<tr ng-repeat="item in filteredItems">...</tr>
</table>
顯示您的代碼,請。 – hgoebl
[如何根據AngularJS中的過濾結果更改類的可能的副本](http://stackoverflow.com/questions/20687586/how-to-change-class-depending-on-filter-result-in-angularjs) – Stewie