选择2 AngularJS选择的项目在更改状态时丢失

时间:2014-08-10 17:50:50

标签: angularjs select

我的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的值包含先前选择的正确值

¿我怎么能再次选择这个项目?我真的不明白为什么在改变状态时选择会丢失。

¡感谢您提前!

1 个答案:

答案 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