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 в первом списке, но после того, как - выбрать - и сделать его следующий:Угловые ng-опции делают конкретную опцию сначала в списке

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

пожалуйста размещать действительный вещь, вы имеете в виду людей в нг-вариантов, тогда нет нигде Я вижу ссылку на людей. –

+1

Единственный способ изменить порядок выбора - изменить порядок списка; т. е. изменить значение, которое вы отслеживаете; в этом случае вам нужно, чтобы элемент, который вы хотите первыми в списке, имел самый низкий 'item.id', или создайте новый столбец, чтобы определить порядок, и назначьте ему значение заказа/дорожки. – Claies

ответ

3

Вы можете просто добавить OrderBy фильтр в список данных в ng- опции.

Обновить ваш шаблон 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; 
    } 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^