【问题标题】:Dynamic filter table in ng-repeat with checkboxes带有复选框的 ng-repeat 中的动态过滤表
【发布时间】:2016-09-29 12:20:04
【问题描述】:

我想通过使用复选框来过滤我的表格,我使用带有以下代码的单选按钮成功地做到了这一点:

<label class="checkbox-inline" >
       <input type="radio" ng-model="term" value="HT1"/> HT1
       <input type="radio" ng-model="term" value="HT2"/> HT2
       <input type="radio" ng-model="term" value="VT1"/> VT1
       <input type="radio" ng-model="term" value="VT2"/> VT2
</label>
<tr ng-repeat="course in vm.courses|filter:term">

我意识到在使用复选框时同样不行,因为所有复选框都使用相同的 ng-model。但是我如何使用复选框来做到这一点?如果必须使用脚本,我想使用 javascript 而不是 angular

【问题讨论】:

  • 我认为您可以使用参数创建一个角度过滤器 (stackoverflow.com/questions/16227325/…)。您可以将复选框与不同的 ng-model 绑定并将其放入过滤器以自定义过滤器。

标签: javascript angularjs checkbox filter angularjs-ng-repeat


【解决方案1】:

试试这个:

<input type="checkbox" ng-model='filter1' ng-true-value="'filter1'" ng-false-value=''/> filter1
<input type="checkbox" ng-model='filter2' ng-true-value="'filter2'" ng-false-value=''/> filter2
<tr ng-repeat="course in vm.courses | filter:filter1 | filter:filter2">

或编写自定义过滤器:

app.filter('myCustomFilter', function() {
return function(input, optional1,optional2) {
     var output;
     // Do filter work here
     return output;
    }
});

并按以下方式使用它:

<tr ng-repeat="course in vm.courses | myCustomFilter">

【讨论】:

  • 使用ng-true-value指令和ng-false-value重试
  • 还是不行,检查告诉我那里不允许ng-true-value
  • 检查最后一次编辑我只是忘记了双引号,我尝试了这个例子并且它有效。
  • 谢谢,成功了!但是你不能同时选择两个复选框,你知道如何解决这个问题吗?
  • 你应该编写自己的自定义过滤器
猜你喜欢
  • 2016-12-06
  • 2017-09-28
  • 2018-04-30
  • 2014-03-08
  • 2015-09-07
  • 1970-01-01
  • 2016-09-28
  • 2015-06-21
  • 2016-06-16
相关资源
最近更新 更多