Search code examples
javascriptangularjsng-options

Empty option as default select when ngoptions data is bound asynchronously


I have the ngoptions array bound asynchronously inside my controller. When I create a select with it, there is an empty option being created. How do I avoid?

<select  data-ng-model="order.employee" ng-options="employee._id as employee.name for
    employee in employeess"> </select>

My controller code

Employees.query(function(employees){
    $scope.employees = employees
});

How do I avoid empty select being created? I tried ng-init but it didn't work

enter image description here


Solution

  • Solution

    (1) You can create blank option. This will be selected by default.

    $scope.order.employee = -1
    
    <select  data-ng-model="order.employee" ng-options="employee._id as employee.name for
        employee in employeess"> 
       <option value="-1">--Select--<option>
    </select>
    

    (2) You can select first option

    Employees.query(function(employees){
        $scope.employees = employees
        $scope.order.employee = employees.length ? employee[0]._id : -1
    });