AngularJS重置过滤器,即不过滤任何内容



我在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>

如果您在ng模型中使用对象,我认为您需要将默认选项添加到您在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/

最新更新