angular ng-option选项和标签

时间:2014-08-19 10:27:18

标签: javascript json angularjs

我有一个选择字段:

<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"

但我不明白我是如何解决这个问题的。

提前致谢,

雷夫

2 个答案:

答案 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进行更新