当前位置: 首页 > 面试题库 >

如何在控制器中链接AngularJS过滤器

孟杰
2023-03-14
问题内容

我的过滤器很少

  <tr ng-repeat="x in list | filter:search| offset:currentPage*pageSize| limitTo:pageSize ">

在我的项目中,要获得良好的结果,我必须在控制器中进行此过滤,而不是在视图中

我知道基本的语法,$filter('filter')('x','x')但我不知道如何在控制器中制作过滤器链,因此一切都将如模板中的示例一样工作。

我找到了一些解决方案,现在仅使用一个过滤器,但是应该可以用于许多;)

       $scope.data = data; //my geojson from factory//

       $scope.geojson = {}; //i have to make empty object to extend it scope later with data, it is solution i found for leaflet //

       $scope.geojson.data = [];

       $scope.FilteredGeojson = function() {

       var result = $scope.data;

       if ($scope.data) {
          result = $filter('limitTo')(result,10);
          $scope.geojson.data = result;
          console.log('success');
       }
           return result;

       };

我在ng-repeat中使用此功能可以正常工作,但是我必须使用少量过滤器进行检查。


问题答案:

您只需重新过滤您从第一个过滤器返回的内容即可。等等等等。

var filtered;
filtered = $filter('filter')($scope.list, {name: $scope.filterParams.nameSearch});
filtered = $filter('orderBy')(filtered, $scope.filterParams.order);

下面的代码展示了上面的内容。

http://plnkr.co/edit/Ej1O36aOrHoNdTMxH2vH?p=preview



 类似资料:
  • 问题内容: 我写了一个过滤器函数,它将根据您传递的参数返回数据。我希望控制器具有相同的功能。是否可以在控制器中重用过滤器功能? 到目前为止,这是我尝试过的: 问题答案: 将 $ filter 注入控制器 然后,无论您想在哪里使用该过滤器,都可以像这样使用它: 如果要将参数传递给该过滤器,请使用单独的括号进行处理: 您要过滤的数组在哪里,并且是用于过滤的对象。

  • 问题内容: 我的应用程序中有2个过滤器。根据某些条件,我想选择是否执行第二个过滤器。有没有办法做到这一点? 我做了一些谷歌搜索,但没有成功。我希望请求继续执行而不执行第二个过滤器。那可能吗? 任何帮助将不胜感激。 问题答案: 您可以在请求中设置一个属性,然后在第二个过滤器中对其进行检查。 您可以像这样简化上面的代码: 这样,您只需检查属性“ executeSecondFilter”的存在

  • 问题内容: 我已经浏览了很多有关如何过滤列表的教程,但找不到适合我的简单用例的示例。 我有几个按钮,例如 我有物体,并且像显示它 如何创建过滤器,以便每次我单击其中一个按钮时,列表都会被过滤? 我尝试添加, 并在脚本方面编写: 但这只是一个用例(如何用其他名称过滤?)-换句话说- 如何将链接连接到过滤器? 问题答案: 您可以像其他任何操作一样将过滤器绑定到范围变量。因此,您需要做的就是在用户单击并

  • 问题内容: 我想在过滤器中向后端请求并返回请求的结果。问题是服务$ http返回一个承诺,这就是问题。 对于存在的问题,我用$超时和角度在我的小提琴的承诺: 我的小提琴 在我的过滤器中,我使用带有承诺的$ timeout,但是最终目标是使用请求http: }); 然后在我看来,我使用了我的过滤器,该过滤器假定以2秒的延迟显示“ ca marche”,但这不起作用: 您会看到过滤器不返回任何内容,并

  • 主要内容:AngularJS 过滤器,表达式中添加过滤器,AngularJS 实例,AngularJS 实例,currency 过滤器,AngularJS 实例,向指令添加过滤器,AngularJS 实例,过滤输入,AngularJS 实例,自定义过滤器,AngularJS 实例过滤器可以使用一个管道字符(|)添加到表达式和指令中。 AngularJS 过滤器 AngularJS 过滤器可用于转换数据: 过滤器 描述 currency 格式化数字为货币格式。 filter 从数组项中选择一个子集

  • 问题内容: 当我用ng-repeat迭代一些数组时,我想在过滤器中使用参数 例: HTML部分: JavaScript部分: 但是我希望能够使用像 但是它不起作用。我该怎么做? 问题答案: 更新: 我想我对文档的了解并不足够,但是您绝对可以使用具有以下语法的过滤器过滤器(请参阅此小提琴)来按对象的属性过滤: 如果有帮助,这是我的原始答案: 使用过滤器过滤器将无法传递参数,但是至少可以做两件事。 1