我有一个选择字段:
<select
id="aircraft_id"
data-id="{{( $obj->exists ) ? $obj->aircraft_id : NULL}}"
data-placeholder="Wähle ein Flugzeug"
no-results-text="'Konnte kein Flugzeug finden'"
class="form-control"
chosen="directiveOptions"
name="aircraft_id"
ng-model="aircraft"
ng-change="checkSeats(aircraft.id)"
ng-disabled="newAircraftIdentifier.length > 0 || newAircraftModel.length > 0"
ng-options="aircraft.ident for aircraft in aircrafts">
</select>
和“飞机”json对象包含:
[Object { ident="--", id="", seats=""},
Object { id=1, ident="D-3417", seats=2},
Object { id=2, ident="D-1021", seats=2},
Object { id=3, ident="D-4582", seats=1},
Object { id=5, ident="D-FTSD", seats=null},
Object { id=10, ident="D-5970", seats=1}
]
除了我在select中的选项是我的json对象的索引,而不是id ...
之外,一切正常所以结果如下:
<option value="0" selected="selected">--</option>
<option value="1">D-3417</option>
<option value="2">D-1021</option>
<option value="3">D-4582</option>
<option value="4" selected="selected">D-FTSD</option>
<option value="5">D-5970</option>
但我希望选项值是数组中的ID,如最后一项中的ID 10,而不是5 ...... 希望你明白我的意思。
我认为错误的是:
ng-options="aircraft.ident for aircraft in aircrafts"
但我不明白我是如何解决这个问题的。
提前致谢,
雷夫
答案 0 :(得分:0)
尝试
aircraft.id as aircraft.ident for aircraft in aircrafts
答案 1 :(得分:0)
您不应该关注value
元素option
,因为它与Angularjs模型无关。使用ng-options创建的DOM将始终具有0..n的值,请检查$scope.aircraft
模型中实际选择的值
您也可以将其用作aircraft.id as aircraft.ident for aircraft in aircrafts
,然后模型$scope.aircraft
将仅使用ID进行更新