将第一个数组值默认为下拉列表

时间:2017-08-30 11:21:42

标签: angularjs

我想将json数组对象的第一个值默认为下拉列表

  <select ng-model="selectedItem"  ng-options="item as item.taskName for item in abc.taskList"  ng-init="selectedItem = selectedItem || abc.taskList[0].taskName">
      <pre>{{selectedItem | json}}</pre>
</select>

我尝试过ng-init和setDefault,但没有任何效果。每次出现空白选项值时,都会出现taskList值。

这就是我的数组的样子

  $rootScope.abc = {
          taskList: [{
            'projectId': '',
            'taskId': '',
            'taskName': ''
        }]
     };

这是json数组Object

{
"returnCode": "0",
"returnMsg": "Success",
    "taskList": [{
        "taskId": "123",
        "taskName": "TimeSheet"
    }, {
        "taskId": "345",
        "taskName": "Travel Expense"
    },{
        "taskId": "653",
        "taskName": "Attendance"
    }]
}]

}

如何将TimeSheet默认为下拉列表中的默认值?

3 个答案:

答案 0 :(得分:0)

使用此ng-selected="$first",您将获得在下拉列表中选择的第一个值。

答案 1 :(得分:0)

选项1

设置:ng-options="item.taskName as item.taskName for item in abc.taskList"

 <select ng-model="selectedItem"  
      ng-options="item.taskName as item.taskName for item in abc.taskList" 
      ng-init="selectedItem = selectedItem || abc.taskList[0].taskName" >      
 </select>

Demo 1

ng-init中使用abc.taskList[0].taskName a.e. taskName因此要使其成功,我们需要将模型用作item.taskName as item.taskName

选项2

selectedItem设为abc.taskList[0]

<select ng-model="selectedItem"  
   ng-options="item as item.taskName for item in abc.taskList" 
   ng-init="selectedItem = abc.taskList[0]">      
</select>

Demo 2

答案 2 :(得分:0)

设置第一个值你的范围列表在控制器中那样

$scope._yourscope.projectId= ($scope.taskList.length > 0) ? $scope.taskList[0].projectId: '';