我有一个<select>
元素,我使用ng-options
添加插入可用值,我的代码就像
<select ng-model="selectedCollection"
ng-options="collection.collectionName for collection in seriesCollection">
</select>
这很好用,$scope.selectedCollection
我有collection
个整个对象。
现在我需要根据一些参数添加一些额外的<option>
元素。我认为最好的方法是避免使用ng-options
并执行类似的操作
<select ng-model="selectedCollection"
<option value='c1' ng-if="case1">somevalue</option>
<option value='c2' ng-if="case2">somevalue2</option>
<option ng-repeat="collection in seriesCollection">
{{ collection.collectionName }}
</option>
<option value='c3' ng-if="case3">somevalue3</option>
</select>
这种方式selectedCollection
在选择“静态”选项时包含名为c1,c2或c3的字符串,但我希望在选择其中一个时包含整个collection
对象。
我尝试使用<option ng-repeat="collection in seriesCollection" value="{{ collection }}">
,但是存储的值不是collection
对象,而是表示序列化的字符串。我该怎么办?
答案 0 :(得分:1)
不幸的是,你试图实现的目标无法实现。
它是ngOptions
指令,负责将对象绑定到模型,而ngRepeat
之类的任何其他方法都将模型设置为字符串,因此值不能是对象,并将ngOptions
与html {混合{1}}无效。
您可以使用option
或将案例添加到集合中,并使用过滤器仅返回应显示的案例