2016-08-02 5 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> 
関連する問題