2014-04-23 2 views
1

나는 목록이있는 경우 :사전에 AngularJS 검색 필터를 사용하려면 어떻게해야합니까?

items = [ 
{ 
    name: name1 
    value: value1 
}, 
{ 
    name: name2 
    value: value2 
} 
] 

완벽하게 다음 HTML 작업 :

<input ng-model='search_field'/> 
<span ng-repeat='item in items | search_field>[[item]]</span> 

그러나 항목이 같은 사전의 경우 어떻게이 기능을 사용할 수 있습니다

items = { 
    name1 : value1, 
    name1 : value2 
} 

가 사전 표현을 사용하고 싶습니다. 왜냐하면 제가 수행하려고하는 작업이 훨씬 쉽기 때문입니다.

답변

1
angular.module('filters',[]) 
    .filter('objFilter', function($filter){ 

    return function(input, query){ 
     if(!query) return input; 
     var result = []; 

     angular.forEach(input, function(v,k){ 
      result.push(v);   
     }); 

     var refined = $filter('filter')(result,query); 

     return refined; 
    }; 
    }); 

<span ng-repeat='item in items | objFilter:query'></span> 
+0

예! 그러나 사전의 경우 angular.forEach()가받는 두 번째 인수를 사용해야합니다. –

관련 문제