2017-09-05 4 views
1

배열이 있고이 배열에 일부 ID가 들어 있습니다. ID에 따라 결과를 필터링하고 싶습니다.배열의 값에 따른 AngularJS 필터 필드

예를 들어 아래 코드 스 니펫을 참조하십시오. 'ids'배열에있는 'StatusId'레코드를 어떻게 표시합니까? 내 예에 따르면, 난 단지 나열 할 :

AAA BBB CCC

<html> 
 

 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<script> 
 
    angular.module('myApp', []).controller('ctrl', function ($scope) { 
 

 
     $scope.ids = [{ 
 
      "id": 1 
 
     }, { 
 
      "id": 2 
 
     }, { 
 
      "id": 3 
 
     }] 
 

 
     $scope.records = [ 
 
      { 
 
       "Name": "AAA", 
 
       "StatusId": 1 
 
      }, 
 
      { 
 
       "Name": "BBB", 
 
       "StatusId": 1 
 
      }, 
 
      { 
 
       "Name": "CCC", 
 
       "StatusId": 2 
 
      }, 
 
      { 
 
       "Name": "DDD", 
 
       "StatusId": 4 
 
      }, 
 
      { 
 
       "Name": "EEE", 
 
       "StatusId": 4 
 
      }, 
 
] 
 

 

 
    }); 
 
</script> 
 

 

 
<body> 
 
    <div id="idctrl" ng-app="myApp" ng-controller="ctrl"> 
 
     <ul> 
 
      <li ng-repeat="x in records"> 
 
       {{ x.Name }} 
 
      </li> 
 
     </ul> 
 
    </div> 
 
</body> 
 

 
</html>

+0

사용자 지정 필터를 만들어야합니다. 이 대답을보십시오. [https://stackoverflow.com/a/15869436/5358917](https://stackoverflow.com/a/15869436/5358917) – KKK

답변

1

당신은 자바 스크립트 '필터'기능을 사용할 수 있습니다

records = $scope.records.filter((record) => { 
    return record.StatusId === 1 
}); 

이것은 S가있는 레코드 만 포함하는 새 배열을 반환합니다. tatusId of 1.이 업데이트 된 배열을 사용하여 원하는 레코드를 표시 할 수 있습니다.

+0

죄송합니다. 명확하지 않습니다. 내 코드에 함수를 추가했지만 결과는 변경되지 않았습니다. – Grcn

+0

@Grcn 배열에는 _function_을 입력으로 사용하여 true 또는 false를 반환하는 필터 함수가 있습니다. 제공된 함수를 통해 배열의 각 요소를 전달하고 true를 반환 한 요소의 _new_ 배열을 반환합니다. [여기에 대해 읽어보십시오.] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter). –

+0

화살표 함수로 작업하고 _just_ 함수가 값을 반환한다면, 다음과 같이 작성할 수 있습니다 :'(record) => record.StatusId === 1' (또는'record => record.StatusId === 1', 정확하게 하나의 매개 변수가 있기 때문에) –