我想知道我是否认为这一切都是错的,但这就是问题所在。
我有一个像这样配置的选择列表:
<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文档,但这让我感到更加困惑。有什么我想念的吗?
答案 0 :(得分:1)
将ng-options更改为:
obj.Value as obj.Text for obj in measure.AnnualTarget_Measure_SelectList track by obj.Value
如果没有它,你就可以制作它,这样他们选择的就是整个对象。