AngularJS重置过滤器,没有任何过滤

时间:2016-03-28 18:14:54

标签: angularjs filter

我在ng-repeat上使用了一个过滤器,当我导航到页面时它工作正常(一切都显示 - 没有任何过滤),当我过滤时,一切都很好。 当我将以我选择的方式“取消选择”过滤器时,我只会遇到问题。选项>< /选项>在选择输入中。没有显示任何内容而不是全部。 当我选择<时,有谁知道我能做什么?选项>< /选项>一切都像开头那样显示 - 当我导航到页面时?

somethingToIterate | filter: {institutionUserRole: {value: roleFilter}}

我的选择如下:

<select class="form-control roleSelect" ng-model="roleFilter" ng-options="role as role | translate for role in vm.roles">
    <option></option>
</select>

1 个答案:

答案 0 :(得分:0)

如果您在ng-model中使用对象,我认为您需要将默认选项添加到您在ng-repeat中循环的列表中。
像这样:

 $scope.options = [
   //add the default value in the options list.
   {'value':'', 'label':''},
   {'value':'1', 'label':'Option 1'},
   {'value':'2', 'label':'Option 2'},
   {'value':'3', 'label':'Option 3'},
   {'value':'4', 'label':'Option 4'},
   {'value':'5', 'label':'Option 5'},
   {'value':'6', 'label':'Option 6'}
 ];


<div class="jumbotron">
  <select ng-model="option" ng-options="item as item.label for item in options track by item.value">
  </select>

  <ul>
    <li ng-repeat="item in data | filter: {name: option.value}">{{item.name}}   
    </li>
  </ul>
</div>

或者你可以这样试试,

<select ng-model="selected.option">
  <option value='' >select</option>
  <option ng-repeat="option in options" value="option.value">{{option.label}}
  </option>
</select>

这是一个工作示例。 http://codepen.io/mkl/full/qZjwJG/