0

나는 ng-repeat을 사용하여 객체 배열의 항목을 나열합니다. orderBy (또는 일부 맞춤 주문 필터)을 사용하여 이러한 항목을 정렬하고 싶습니다.주문 기능을 사용하여 AngularJS

그러나 내가 주문하고자하는 필드는 개체 자체의 배열 자체가 아니라 오히려 기능이 있습니다. 각 개체에 대해 계산할 수 있습니다. 그렇게하기 위해서는 각 개별 객체를 전달해야합니다. 이 같은

뭔가 :의 getStatus과 같이 컨트롤러 내부에

<table> 
    <tr ng-repeat="item in sortedItems = (items | orderBy:'getStatus(item)':reverse)"> 
     <td>Title: {{item.title}}</td> 
     <td>Status: {{getStatus(item)}}</td> 
    </tr> 
</table> 

:

$scope.getStatus = function(item){ 
    var days = item.days 
    if(days<=100){ 
     var x=100-item.days+" "; 
     if(days===99){ 
      return x+"day left"; 
     } 
     return x+"days left"; 
    } 
    return "Completed"; 
}; 

가 그래서 문자열을 반환합니다.

배열을 정렬하려면 배열의 각 개별 항목이 필요한 함수로 정렬 할 수있는 방법이 있습니까?

답변

3

물론, 단지 orderBy 절에서 매개 변수를 제거, 그것은 기대하고 개별 항목 :

<tr ng-repeat="item in sortedItems = (items | orderBy: getStatus :reverse)">