Установить параметр для привязки массива объектов angularjs

Plunkr: http://plnkr.co/edit/RgNcSg?p=preview

У меня есть раскрывающийся список «местоположений», который заполняется массивом объектов. Если я устанавливаю значение объекта, которое я делаю в своем контроллере, оно не выбирается в раскрывающемся списке, почему бы и нет? По выходным данным html видно, что привязка работает и значение установлено правильно, но раскрывающийся список не может быть установлен с контроллера.

Контроллер:

var myapp = angular.module('myapp', []);

myapp.controller('ctrl', function($scope) {
  $scope.locationOptions = [
    {id: 1, name: "option 1"},
    {id: 2, name: "option 2"}];
  $scope.options = {
    location: { id:1, name: "option 1"}
  }
});

Шаблон:

<div class="form-group">
    <label for="location" class="control-label col-md-2">Location</label>
    <div class="col-md-3">
        <select id="location"
                class="form-control"
                ng-options="loc.name for loc in locationOptions"
                ng-disabled="loadingLocations"
                ng-model="options.location">
        </select>
    </div> 
</div>
LocationID: {{options.location.id}}
Location: {{options.location.name}}

person Ryan Langton    schedule 10.06.2014    source источник


Ответы (1)


Это связано с тем, что angularjs использует ссылки для ссылки, попробуйте сделать это вместо этого:

 $scope.options =  $scope.locationOptions[0]
person Mathew Berg    schedule 10.06.2014