angularjs - 在 ng-click 上使用按钮进行过滤和取消过滤

标签 angularjs

你好,我有几个按钮想要用来过滤数据,但是当我再次单击按钮时,我不知道如何使其取消过滤。我使用正常的过滤表达式,例如:

<tr ng-repeat='ledata in datas  |  filter:thecondition'></tr>

条件可能会根据单击的按钮而变化,按钮的代码如下

ng-click="thecondition = {type: 1}"

另外我如何用 ng-class 来标记它?让按钮看起来被按下?谢谢。

最佳答案

我的建议是尝试实现您自己的自定义过滤器。

接近的东西:

自定义过滤器:

angular.module('myApp', []).filter('myFilter', function() {
  return function(items, param1, param2) {
    return items.filter(function(item){ /* your custom conditions */ });
  };
});

并在您的html

 <li ng-repeat="item in items | myFilter:'car': 2">

当然,您可以扩展并执行更适合您的应用需求的操作。

我之所以推荐自定义过滤器是因为它可以让你更好地分离 View 和业务逻辑;这更符合 Angular 背后的 MVVM 设计模式。

关于angularjs - 在 ng-click 上使用按钮进行过滤和取消过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25518779/

相关文章:

javascript - Angular -> 渲染和克隆元素 -> 范围访问

javascript - 使用远程数据源的 Angular Material Design 自动完成及其性能与最佳方法

javascript - 在 AngularJS 指令中使用 SelectBoxIt

angularjs - popover 元素的 popover-append-to-body 属性似乎在 angular-ui 中不起作用

javascript - 防止 AngularJS $http promise 返回缓存的 JSON 数据

javascript - q.defer deferred.resolve 已弃用

javascript - 无法更新指令中的 $scope 值

javascript - 如何在 Controller 之间共享通用逻辑?

javascript - AngularJS指令: Inserting Attribute values in template

php - AngularJS ng-repeat show 1 数据