2017-03-13 72 views
1

我使用自定義過濾器在ng-repeat如何返回過濾器ng-repeat中的所有數據?

item in filtered = (project.data.campaigns | filter:isStatus() | filter:isCategory()) | orderBy : 'created_at' 

和過濾:

$scope.isStatus = function() { 

      return function(item) { 
       var status = $scope.inArray($scope.filterObj.status, item.status); 
       console.log(status); 
       return status; 
      }; 
     }; 

如何到,如果$scope.filterObj爲空,則返回在ng-repeat的所有項目?

簡單,如果filter:isStatus()是假的,然後返回所有項目

回答

2

嘗試:

$scope.isStatus = function() { 
    return function(item) { 
     // false if filterObj is null 
     // since ECMAScript 5.1 you can also use Object.keys 
     if ($scope.filterObj && Object.keys($scope.filterObj).length > 0) { 
      return $scope.inArray($scope.filterObj.status, item.status); 
     } 

     return item; 
    }; 
}; 
+0

它不工作,當我明確的對象'$ scope.filterObj'我得到它:'{」狀態「:[],」類別「:[]}' – Daniel

+0

做得好,這不是」空「。就像你在你的問題中說的那樣。 – lin

+0

我需要檢查'$ scope.filterObj.status.length> 0它的工作原理,謝謝 – Daniel

相關問題