答案 0 :(得分:2)
尝试在 select 元素中使用 ngOptions 而不是 ngRepeat 指令:
<select ng-model="d.SkuId"
ng-options="s.Key as s.Value for s in skus">
</select>
答案 1 :(得分:1)
使用ng-attr-value="s.Key"
代替value="{{s.Key}}"
。
尝试plnkr
注意差异只是值:
<select ng-model="k.Key" >
<option ng-repeat="s in skus" ng-selected="s.Key === k.Key"
ng-attr-value="s.Key">{{s.Value}}</option>
</select>
使用{{}}的表达式评估时间和ng-repeat编译时间并不像人们想象的那样同步。这解释了为什么只选择了最后一个。
虽然根据official documentation - choosing between ng-options and ng-repeat你可以使用ng-repeat来表示ng-options,但是当你处理对象而不是ID时,你可能想要使用select as
语法。此外,还有其他性能原因可能会导致您这样做。