我的AngularJS组件Select2有问题,我创建了一个指令:
app.directive('autocomplete', function() {
return {
restrict : 'A',
link : function( scope, element, attrs, ngModelCtrl) {
$(function() {
element.select2({
formatNoMatches : function() {
return 'No results';
}
});
});
}
}
});
实施:
<select id="animals" name="animals" class="form-control" ng-model="item.animals" autocomplete >
<option ng-repeat="animal in animals" value="{{animal.code}}" >{{animal.value}}</option>
</select>
此时组件运行良好,但是,我有一个简单的$ state.go加载其他视图,然后返回到此主视图,当返回到视图时,所选动物不加载但是item.animals的值包含先前选择的正确值。
¿我怎么能再次选择这个项目?我真的不明白为什么在改变状态时选择会丢失。
¡感谢您提前!
答案 0 :(得分:1)
这就是ng-options
存在的原因。您可以使用ng-options
,并且可以正确加载上一个选定的值。
<select id="animals" name="animals" class="form-control"
ng-model="item.animals" autocomplete=""
ng-options="animal.code as animal.value for animal in animals">
</select>
示例Plunker: http://plnkr.co/edit/5XLjJ2gm9ksjQfmTAPPp?p=preview