2016-09-06 107 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 - 。从数据库读取列表。有没有一种方法,使与价值4先在列表中选择,但后 - 选择 - 并使其成为下一个:Angular ng选项首先在列表中选择特定选项

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

请张贴有效的事情,你是指在NG选项的人,而没有什么地方我看到有人参考。 –

+1

更改选择顺序的唯一方法是更改​​列表的顺序;即更改您正在跟踪的值;在这种情况下,您必须让列表中要排在第一位的元素具有最低的'item.id',或者创建一个新列来定义顺序,并将顺序值/曲目分配给它。 – Claies

回答

3

你可以简单的排序依据过滤器添加到您的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> 

,并确定在控制器的排序依据断言:

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