Установка выбранного элемента с помощью ng-options не работает

У меня есть следующий массив, который я использую для заполнения раскрывающегося списка выбора с помощью ng-options, но я не могу установить выбранный параметр, когда появляется раскрывающийся список.

Вот массив данных

{
                        'vehicle_year_id': 12,
                        'vehicle_color_id': 522,
                        'start_date': 'Thu Mar 26 2015 01:22:48 GMT+0000 (UTC)',
                        'end_date': 'Mon Sep 15 2014 14:37:15 GMT+0000 (UTC)',
                        'meta': {
                            'colors': [{ 'id': 522, 'caption': 'Green' }, { 'id': 523, 'caption': 'Blue' }],
                            'years': [{ 'id': 12, 'year': 2015 }, { 'id': 13, 'year': 2016 }]
                        },
                        'quantity': 8,
                        'duration': 10
                    },

и частичный код

 <select ng-model="details.vehicle_color_id" ng-init="details.vehicle_color_id || details.meta.colors[0].id" class="form-control" ng-options= "color.id as color.caption for color in details.meta.colors track by color.id">                              
                      </select>  

Я вижу список данных в раскрывающемся списке, но выбранное поле вообще не отображается. Как правильно использовать опцию?

Обновлять:

Я только что сделал следующие изменения

 <select ng-model="details.vehicle_color_id" ng-init="details.vehicle_color_id=(details.vehicle_color_id || details.meta.colors[0].id)" class="form-control" ng-options= "color.id as color.caption for color in details.meta.colors" ng-change="getValue($index)">                              
                          </select>

и использовал getValue() для проверки значения модели, и он показывал правильные данные, а также выбиралось значение по умолчанию. Мне интересно, почему так происходит.


person Bazinga777    schedule 12.07.2015    source источник


Ответы (1)


Ваш ng-init должен установить значение переменной области видимости ng-model

Разметка

<select ng-model="details.vehicle_color_id" 
  ng-init="details.vehicle_color_id=(details.vehicle_color_id || details.meta.colors[0].id)"
  class="form-control" 
  ng-options="color.id as color.caption for color in details.meta.colors" 
  ng-change="getValue($index)">
</select>

Рабочий планкр

person Pankaj Parkar    schedule 12.07.2015
comment
Спасибо, но это не сработало для меня. Я все еще получаю ту же проблему - person Bazinga777; 12.07.2015