2016-08-02 82 views
0

所以我想弄清楚如何在一個角度的ng重複fintler對象的對象。如何過濾角度爲ng-repeat的唯一鍵對象的對象?

數據

$scope.data = {key1:value1, key2:value2, key3:value3}; 
$scope.filterStr = 'ey'; 

NG-重複

<div ng-repeat="(val, key) in data | filter:filterStr"></div> 

這顯然是行不通的作爲過濾器期待一個數組,而不是一個對象,但我想知道怎麼做這不會將我的數據轉換爲數組。

回答

0

我想通了,我需要創建一個自定義過濾器。下面的代碼很好。

自定義篩選

angular.module('ui.global') 
.filter('objFilter', function() { 
    return function (obj, param) { 
    var newObj = {}; 
    if(param){ 
     for(var key in obj){ 
     if(key.toLowerCase().includes(param.toLowerCase())){ 
      newObj[key] = obj[key]; 
     } 
     } 
    } else { 
     newObj = obj; 
    } 
    return newObj; 
    }; 
}); 

數據

$scope.data = {key1:value1, key2:value2, key3:value3}; 
$scope.filterStr = 'ey'; 

NG-重複

<div ng-repeat="(val, key) in data | objFilter:filterStr"></div>