我使用以下数组来使用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()检查模型的值,它显示正确的数据,并且还选择了默认值。我很好奇它为什么会这样发生。
答案 0 :(得分: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>