Angularjs <;选择>;使用ngRepeat,选择第一个元素时不选择项目
在Angularjs <;选择>;使用ngRepeat,选择第一个元素时不选择项目,angularjs,angularjs-ng-repeat,angularjs-select,Angularjs,Angularjs Ng Repeat,Angularjs Select,在标记内使用ngRepeat和ngSelected时,我面临一个问题,这是代码: <select ng-model="y.SkuId" ng-change="y.Edited=true;"> <option ng-repeat="s in skus" ng-selected="s.Key == y.SkuId" value="{{s.Key}}">{{s.Value}} </option> </select> 更新2 带错误示例的
标记内使用ngRepeat
和ngSelected
时,我面临一个问题,这是代码:
<select ng-model="y.SkuId" ng-change="y.Edited=true;">
<option ng-repeat="s in skus" ng-selected="s.Key == y.SkuId" value="{{s.Key}}">{{s.Value}}
</option>
</select>
更新2
带错误示例的plnkr
尝试在select元素中使用ngOptions,而不是ngRepeat指令:
<select ng-model="d.SkuId"
ng-options="s.Key as s.Value for s in skus">
</select>
plunker:使用ng attr value=“s.Key”
而不是value=“{{s.Key}}”
试一试
请注意,差异只是值:
<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>
{{s.Value}}
使用{{}的表达式计算时间和ng repeat编译时间并不像人们想象的那样是同步的。这解释了为什么只选择最后一个
虽然根据,您可以对ng选项使用ng repeat,但在处理对象而不是ID时,您可能希望使用
select as
语法。此外,您可能希望这样做还有其他性能原因 是否可以包含您正在迭代的SKU变量的数据?[{“键”:1,“值”:“001”},{“键”:2,“值”:“002”}]是否已初始化对象?如果使用整数值代替对象工作,则可能需要创建plnkrTest。我已经面临类似的挑战problem@bhantoly是初始化的,是一个表的upper ng repeater的元素。这个解决方案工作得很好,我选择它作为Answare,因为除了解释发生了什么之外
<select ng-model="d.SkuId"
ng-options="s.Key as s.Value for s in skus">
</select>
<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>