我希望根据复选框状态将过滤器添加到ng-repeat。
<li ng-repeat="user in users | filter: filters">
{{user.name}} {{user.job}} {{user.min}}-{{user.max}}
</li>
过滤器可以是数组吗?
第二个问题是,当$ scope.min和$ scope.max为空(初始化)时,如何显示所有记录?
答案 0 :(得分:2)
是的,您可以非常轻松地动态更改过滤器,只需指定一个范围变量,您就可以对其进行修改。
此处示例:http://plnkr.co/edit/Au8KFg?p=preview
如果你有
<li ng-repeat="user in users | filter: filters">
那么你的$ scope变量是
$scope.filters = {minMax: false, ... };
至于复选框,如果你的
<input ng-model="minMaxFilter" type="checkbox" ng-change="filters['minMax] =! filters[minMax]"/>MinMAX
如果您只想更改过滤器的状态
或者如果您想添加新过滤器,可以使用ng-click附加功能或只需按下新值
<input ng-model="newFilterToAdd" type='text' > <button ng-click="filters.push(newFilterToAdd);">Add Filter</button>
要显示所有记录,您需要不应用过滤器(例如将其设为空)或为其指定空值
答案 1 :(得分:1)
您可以尝试根据需要添加两个过滤器。
<li ng-repeat="user in users | filter: searchText | minMax : filterParams">
{{user.name}} {{user.job}} {{user.min}}-{{user.max}}
</li>
这是 Fiddle 。
希望它会对你有所帮助。