【问题标题】:How to pass multiple parameter in angular filter function, not custom filter如何在角度过滤器函数中传递多个参数,而不是自定义过滤器
【发布时间】:2014-12-16 14:39:54
【问题描述】:

我很努力地访问了很多类似的问题,但仍然无法解决这个问题。

我想在角度过滤函数中传递额外的参数。我找到了如下解决方案,但它不起作用。我在 ng-repeat 中使用的对象未定义。

<li ng-repeat="user in users | filter:isStatus(user,secondParam)">{{user.name}}</li>

有如下角度自定义过滤器的解决方案,但也不适用于角度过滤器功能。

<li ng-repeat="user in users | filter:isStatus:user:secondParam">{{user.name}}</li>

jsFiddle - 你可以在这里看到我的问题。

【问题讨论】:

    标签: angularjs angularjs-ng-repeat ng-repeat angular-filters


    【解决方案1】:

    会尝试:

    $scope.isStatus = function(secondParam, thirdParam){
          return function(user) {
               console.log(secondParam);
               console.log(thirdParam);
               return user.status == $scope.status;
         }
    

    更新版本http://jsfiddle.net/4PYZa/282/

    【讨论】:

      【解决方案2】:

      根据您的情况,您可以使用谓词表达式代替自定义过滤器:

      <li ng-repeat="user in users | filter:{status: status, name: name}">{{user.name}}</li>
      

      看看这个小提琴:http://jsfiddle.net/ovym2tpr/28/

      无论如何你都可以使用自定义过滤器,它的性能不是很好,尤其是在嵌套ng-repeat

      【讨论】:

        【解决方案3】:

        How do I call an Angular.js filter with multiple arguments?

        AngularJS : Custom filters and ng-repeat

         myApp.filter("isStatus ", function() { // register new filter
             return function(user, secondParam, thirdParam) { // filter arguments
        
               return user.status == $scope.status; // implementation
            };
         });
        

        从模板调用

        <li ng-repeat="user in users | isStatus:secondParam">{{user.name}}</li>
        

        【讨论】:

          【解决方案4】:

          很简单,就这样做

          <li ng-repeat="user in users | filter:user | filter : secondParam)">{{user.name}}</li>
          

          【讨论】:

          • 我不知道为什么有人不赞成这个,它运行得很好。请检查一次。
          猜你喜欢
          • 1970-01-01
          • 2013-06-03
          • 2022-06-24
          • 1970-01-01
          • 2016-12-11
          • 2019-04-27
          • 2020-07-27
          • 2019-02-16
          • 2015-04-17
          相关资源
          最近更新 更多