Program Tip

AngularJS orderBy는 ngOptions에서 추적으로 작동하지 않습니까?

programtip 2020. 10. 28. 20:35
반응형

AngularJS orderBy는 ngOptions에서 추적으로 작동하지 않습니까?


나는 정렬 노력하고 ngOptions함께track by

이것은 내 템플릿입니다

<select ng-model="asd" ng-options="user.id as user.name for user in users track by user.id | orderBy: 'name'">

이것은 내 컨트롤러입니다

function AppCtrl($scope) {
  $scope.users = [
   {id : 25, name: 'Batista'},
   {id : 26, name: 'Ultimate Warrior'},
   {id : 27, name: 'Andre the giant'}
  ];
  $scope.name = 'asdasd';
  $scope.asd = 25;
 }

이를 증명하기 위해 JSBin스 니펫을 작성했습니다 . 이것의 문제는 정렬이 작동하지 않는다는 것입니다. 사용자 지정 필터를 작성해야합니까?


필터와 함께 추적을 사용 track by하려면 필터 뒤에 표현식을 추가해야합니다.

대신 이것을 시도하십시오.

user.id as user.name for user in users | orderBy: 'name' track by user.id

에 대한 문서 ngRepeat는 "인수"섹션에서이를 구체적으로 설명합니다.

추적 표현식을 지정하기 전에 필터를 표현식에 적용해야합니다.

예 : 항목의 항목 | filter : searchText track by item.id 는 추적 표현식과 함께 항목에 필터를 적용하는 데 사용할 수있는 패턴입니다.

참고 URL : https://stackoverflow.com/questions/23925445/angularjs-orderby-does-not-work-with-track-by-in-ngoptions

반응형