2015-07-12 80 views
0

我有以下數組,我正在使用ng選項填充選擇下拉列表,但當下拉菜單顯示時我無法設置選定的選項。使用ng選項設置選項不起作用

這裏是數據陣列

{ 
         '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()檢查模式的價值和它顯示正確的數據,也是默認值是選擇。我很好奇爲什麼這樣發生。

回答

0

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> 

Working Plunkr

+0

謝謝值,但沒有爲我工作。我仍然遇到同樣的問題 – Bazinga777

+0

@ Bazinga777看着我更新的答案,用plunkr –

+0

@ Bazinga777你看了我更新的答案嗎? –