Angular ng-options如何绑定到一个属性,而不是整个对象?

时间:2016-11-12 17:50:29

标签: angularjs ng-options

我正在使用ng-options从一个对象数组中创建一个Select。这工作正常,并且出于这个问题的目的,对象的内容有点不重要,只需要说它们有name属性,value属性和一些其他属性。

以下是我用来创建Select的代码,到目前为止,它的工作正常。

这是我的问题 - 当选择一个选项时,绑定到ng-model的是"整个对象" (FL)。我想要与ng-model绑定的只是" name" (i.itemName)对象的一部分。

我想我可以通过事后回过头来解决这个问题,当按下提交按钮时,我可以循环遍历所有数据,找到绑定对象,从中提取名称,然后将其更改为“#”;没有这个名字的约束,但是...那相当邋and而不是真的应该如何处理。

有没有办法更改此代码,以便在选择项目时,ng-model绑定到 i.itemName 而不是 fl

<select chosen
        id="{{fl.fldBasic.fldLabel}}"
        ng-model="fl.dataValue"
        ng-readonly="{{fl.fldBasic.attrReadOnly}}"
        title="{{fl.help}}"
        ng-required="{{fl.required}}"
        class="chosen-select"
        ng-options="i.itemName for i in fl.combo_ItemList.itemList track by i.itemValue"
        style="width: 100%;">
</select>

1 个答案:

答案 0 :(得分:3)

如果要将$http绑定到itemName,可以使用以下代码。请注意,您需要在此处删除跟踪才能使其正常工作,因为它将评估为未定义且模型值与任何选项都不匹配。

ng-model