我有这样的情况:
<span ng-repeat="personNum in unit.PricePerson">
{{personNum}}
<select ng-model="personNum"
ng-options="o as o for o in unit.PricePerson track by $index"></select>
</span>
unit.Price
是数字数组,类似于[5,6,7,8,9],但每个select的值为9。我希望首先选择选择选项5,其他一个6等。另外,我注意到我无法使用鼠标更改选项。
生成5个选择框很好,每个选择内部还有5到9个数字作为选项生成。那些事情还可以。
答案 0 :(得分:3)
您的部分问题可能是您选择的$ index跟踪...看看下面的plunker。另外,使用ng-init设置默认值。
http://plnkr.co/edit/2ZN1J61PD1Ev2OK1tezg
代码:
<span ng-repeat="personNum in unit.PricePerson">
<select ng-init="select[$index]=personNum" ng-model="select[$index]" ng-options="o as o for o in unit.PricePerson">
</select>
</span>
正如@cyan建议的那样,我认为你还需要ng-model不是外部ng-repeat中的变量。
希望这有帮助。
答案 1 :(得分:0)
您的问题有点不清楚,但看起来您的ng-options配置存在问题。
通常不建议将选择与轨道一起使用,因为它们不是设计为一起工作而且可能会产生意外结果。此外,您在ng-options中使用unit.PricePerson
引用而不是单个迭代对象personNum
。
你应该有类似的东西:
<span ng-repeat="personNum in unit.PricePerson">
{{personNum}}
<select ng-model="personNum.selectedOption"
ng-options="o as o for o in unit.PricePerson">
</select>
</span>
但是,如果没有看到您的javascript对象PricePerson
,我无法确定您的ng-options配置应该是什么。查看ngOptions的AngularJS API。在Arguments部分中,为ng-options表达式提供了建议的模板。
答案 2 :(得分:-1)
尝试在选择内部使用不同的ng-model,而不是在ng-repeat中使用并启动它以获得所需的值:
<span ng-repeat="personNum in unit.PricePerson">
{{personNum}}
<select ng-init="personNum1 = personNum" ng-model="personNum1"
ng-options="o as o for o in unit.PricePerson track by $index"></select>
</span>
等
所以,要完成这个。看看你使用相同的ng-model,这就是你不能用鼠标改变选项的原因。 在控制器中,创建一个选项数组:
$scope.selectedOptions = ['5','6','7','8','9'];
然后在您的视图中使用它:
<select ng-model="selectedOptions[$index]"
ng-options="o as o for o in unit.PricePerson track by $index">