2016-09-06 68 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; 
    } 
}