2016-09-06 4 views
0
<select ng-model="person" 
     ng-options="item.name for item in persons track by item.id"> 
     <option value="">-- select --</option> 
</select> 



persons = 
{ 
    1: 'Ted', 
    2: 'Ben', 
    3: 'Anna', 
    4: 'Micky', 
    5: 'Ricky' 
} 



    It looks like: 
-- select -- 
Ted 
Ben 
Anna 
Micky 
Ricky 

기본적으로 옵션은 - select -입니다. DB에서 읽는 목록. 목록의 첫 번째 값 4 옵션을 만들 수있는 방법이 있나요하지만, 후 - 선택 - 그리고 그것은 다음합니다각도 옵션은 목록에서 특정 옵션을 먼저 만듭니다.

-- select -- 
    **Micky** 
    Ted  
    Ben 
    Anna 
    Ricky 
+0

하는 것은 올바른 일을 게시하시기 바랍니다, 당신은 NG-옵션에서 사람을 언급하는 것은 아무데도 없다 반면 나는 사람 참조를 참조하십시오. –

+1

선택 순서를 변경하는 유일한 방법은 목록의 순서를 변경하는 것입니다. 즉, 추적중인 값을 변경하십시오. 이 경우리스트의 첫 번째 원소가 가장 낮은'item.id'를 갖거나, 그 순서를 정의하기위한 새로운 컬럼을 생성하고 그 원소에 순서 값/트랙을 할당해야합니다. – Claies

답변

3

당신은 단순히 ng-의 데이터 목록에 해 orderBy 필터를 추가 할 수 있습니다 옵션. 이것에

업데이트하여 HTML 템플릿 :

<select ng-model="person" 
     ng-options="item.name for item in persons|orderBy:sortOptions track by item.id"> 
     <option value="">-- select --</option> 
</select> 

그리고 컨트롤러의 해 orderBy 술어 정의 :

$scope.sortOptions = function(option) { 
    if (option.name === 'Micky') { 
    return 0; 
    } else { 
    return 1; 
    } 
}