2014-11-04 3 views
0

내가 기본값으로 나열되지 않은 다른 항목을 제외 싶어하지만 여전히 모든 항목을필터 NG 반복 내부의 키에 의해 객체

<ul ng-controller="Ctrl" class="dropdown-menu"> 
    <li ng-repeat="(key, value) in Employee.KeyValue | filter:DefaultKeys(key) ">{{key}}</li> 
</ul> 

angular.module('app', []); 

function Ctrl($scope) { 
    $scope.DefaultKeys = function(item) { 
     var defaultItems = ["SSS No.", "TIN"]; 

     return defaultItems.indexOf(item); 
    }; 

    $scope.Employee = 
     { 
      Code: '123',    
      KeyValue: 
      { 
       'TIN': '9038468', 
       'Facebook' : 'https://fb.com/abc' 
      } 
     } 
} 

확인이 fiddle

어떤 도움을 주시기 바랍니다

+1

개체 만 배열에'filter'을 사용할 수 없습니다. 컨트롤러 대신 컨트롤러를 사용해야 할 것입니다. – charlietfl

+0

ooohhh .. 감사합니다. charlietfl –

+0

다음은 비슷한 질문입니다. http://stackoverflow.com/questions/13887504/filtering-on-object-map-rather- array-in-angularjs보다. 유용하다고 생각합니다. – tomepejo

답변

1
을 보여

사용자 정의 필터를 만들 수 있습니다.

필터

angular.module('app', []).filter('DefaultKeys', function() { 
    return function (item) { 
     var keys = {}; 
     angular.forEach(['SSS No.', 'TIN'], function (key) { 
      if (item[key] !== undefined) { 
       keys[key] = item[key]; 
      } 
     }); 
     return keys; 
    }; 
}); 

HTML을

<ul ng-controller="Ctrl" class="dropdown-menu"> 
    <li ng-repeat="(key,value) in Employee.KeyValue | DefaultKeys">{{key}}</li> 
</ul> 

DEMO