我似乎无法使我的多个下拉列表工作。
<div ng-repeat="i in [0,1,2,3,4] track by $index">
<select ng-model="myArray[i]" ng-options="someList"></select>
</div>
在html中,结果是... ng-model =“myArray [i]而不是ng-model =”myArray [0]等。
我尝试过大括号,但不起作用。最接近的是ng-model =“myArray ['{{i}}'],但那不是我想要的。
编辑:这是一个小提琴来说明。
http://jsfiddle.net/dpkzzyug/1/
您需要检查HTML以查看结果字面上写出i(或在这种情况下为$ index)而不是值。
答案 0 :(得分:2)
您所使用的代码,但问题是myArray
是ng-repeat
范围的本地代码。您需要确保myArray
存在于此范围之外。
以下内容将起作用:
<div ng-app ng-init="someList=[1,2,3]; myArray = []">
<div ng-repeat="i in [0,1,2,3,4] track by $index">
<select ng-model="myArray[i]" ng-options="i for i in someList"></select>
http://jsfiddle.net/778x0pm0/1/
我个人更喜欢使用controller as
语法,因为这样可以更清楚一点:
<div ng-app=app ng-init="someList=[1,2,3]">
<div ng-controller="ctrl as ctrl">
<div ng-repeat="i in [0,1,2,3,4] track by $index">
<select ng-model="ctrl.myArray[i]" ng-options="i for i in someList"></select>
答案 1 :(得分:0)
我刚刚意识到html会写出i / $ index,即使angular的逻辑仍然有用。我在其他地方遇到了问题,并认为是因为这个原因。