角度选择列表在我期待值时绑定对象

时间:2014-11-12 13:19:42

标签: angularjs

我想知道我是否认为这一切都是错的,但这就是问题所在。

我有一个像这样配置的选择列表:

<select name="{{ measure.Name }}_MeasureId"
    ng-model="CompleteDataSetViewModel.AnnualRecord.TargetHazardousWaste_Original_MeasureId"
    ng-options="obj.Text for obj in measure.AnnualTarget_Measure_SelectList track by obj.Value"
    ng-init="CompleteDataSetViewModel.AnnualRecord.TargetHazardousWaste_Original_MeasureId = measure.AnnualTarget_Measure_SelectList[measure.InitialFigure_Measure - 1]"
    class="" required></select>

这会输出我想要的内容:

<option selected="selected" value="?"></option>
<option value="13">Metric Tonnes  </option>
<option value="14">Imperial Tonnes</option>
<option value="15">Short Tonnes   </option>

我在JSON中想要的是将CompleteDataSetViewModel.AnnualRecord.TargetHazardousWaste_Original_MeasureId的值设置为数字值为let 13,但是,实际得到的是这样的对象:

"TargetHazardousWaste_Original_MeasureId": {
  "Text": "Metric Tonnes  ",
  "Value": "13",
  "Selected": false
},

这有点正确 - 选择正确的项目,但我所追求的只是13,因为这是我想写入我的数据库的值。

我已经考虑过进行某种映射练习来有效地提取值并分配它,但这与Angular看起来相反(我只有2天)。

我已经尝试过Angular文档,但这让我感到更加困惑。有什么我想念的吗?

1 个答案:

答案 0 :(得分:1)

将ng-options更改为:

obj.Value as obj.Text for obj in measure.AnnualTarget_Measure_SelectList track by obj.Value

如果没有它,你就可以制作它,这样他们选择的就是整个对象。