Angular ng-options在列表中首先提供特定选项

时间:2016-09-06 16:19:04

标签: angularjs select ng-options

<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

默认选项是 - 选择 - 。列表从数据库读取。有没有办法,在列表中首先选择值为4的选项,但选择后选择 - 并将其作为下一个选项:

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

1 个答案:

答案 0 :(得分:3)

您只需将orderBy过滤器添加到ng-options中的数据列表即可。

将您的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;
  }
}