Angular ng-options 到 ng-repeat 额外选项
Angular ng-options to ng-repeat with extra options
我有一个 <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
在选择 "static" 选项时包含名为 c1、c2 或 c3 的字符串,但我希望它包含整个 collection
对象他们被选中。
我尝试使用 <option ng-repeat="collection in seriesCollection" value="{{ collection }}">
,但存储的值不是 collection
对象,而是表示其序列化的字符串。我该怎么办?
很遗憾,您尝试实现的目标无法实现。
ngOptions
指令负责将对象绑定到模型,任何其他方法如 ngRepeat
会将模型设置为字符串,因此值不能是对象并将 ngOptions
与 html option
将不起作用。
您可以利用 ngChange
或将案例添加到集合中并使用过滤器 return 仅应显示的案例
我有一个 <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
在选择 "static" 选项时包含名为 c1、c2 或 c3 的字符串,但我希望它包含整个 collection
对象他们被选中。
我尝试使用 <option ng-repeat="collection in seriesCollection" value="{{ collection }}">
,但存储的值不是 collection
对象,而是表示其序列化的字符串。我该怎么办?
很遗憾,您尝试实现的目标无法实现。
ngOptions
指令负责将对象绑定到模型,任何其他方法如 ngRepeat
会将模型设置为字符串,因此值不能是对象并将 ngOptions
与 html option
将不起作用。
您可以利用 ngChange
或将案例添加到集合中并使用过滤器 return 仅应显示的案例