AngularJS ng-repeat设置默认选择值

问题描述:

$scope.activities = 
    [ 
     { id: 1, type: "DROPDOWN_MENU", name: "Dropdown Menu" }, 
     { id: 2, type: "HORIZONTAL_BAR", name: "Horizontal Bar" } 
    ]; 

<select data-ng-model="engineer.currentActivity" data-ng-options="a.name for a in activities">     
</select> 

使用上述我可以创建一个3值的选择框,一个空白的,然后下拉菜单和水平栏。AngularJS ng-repeat设置默认选择值

我想设置水平栏作为我的默认值,不能看到如何做到这一点。

帮助将是巨大的

+1

顺便说一句,如果你要结束了从服务器拉'activities',你需要滋润选择的选项,你想看看'ng-options'表达式中的'追踪'表达式。 –

在控制器中,只需添加一行设置初始选择:

$scope.activities = 
    [ 
     { id: 1, type: "DROPDOWN_MENU", name: "Dropdown Menu" }, 
     { id: 2, type: "HORIZONTAL_BAR", name: "Horizontal Bar" } 
    ]; 

$scope.engineer = {}; // if needed 
$scope.engineer.currentActivity = $scope.activities[1]; 

使用ng-initdirective

ng-init="engineer.currentActivity = options[1]" 

在您的角度控制器:

$scope.activities = [ 
    { id: 1, type: "DROPDOWN_MENU", name: "Dropdown Menu" }, 
    { id: 2, type: "HORIZONTAL_BAR", name: "Horizontal Bar" } 
]; 
$scope.activity = $scope.activities[1]; //Bind 2nd activity to the model. 

在HTML:

<select ng-model="activity" 
    ng-options="activity as activity.name for activity in activities"> 
    <option value=""></option> 
</select> 

Fiddle