【问题标题】:multiple filters in angular view角度视图中的多个过滤器
【发布时间】:2014-01-12 16:58:32
【问题描述】:

我有这个

<li ng-repeat="phone in (filteredNumber =  (phones | filter : 'jason Raq'))">

这工作正常,并显示名称 json Raq 作为过滤结果,但现在我需要两个名称。杰森和马克

我试过这个让它工作,但没有成功

<li ng-repeat="phone in (filteredNumber =  (phones | filter : {'jason Raq':'Mark'}))">

我也试过

<li ng-repeat="phone in (filteredNumber =  (phones | filter : 'jason Raq' | filter :'Mark'))">

但没有运气......我们如何做多个过滤器?

【问题讨论】:

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


    【解决方案1】:

    你可以像这样使用控制器函数来获取filteredNumber

    <li ng-repeat="phone in phones | filter : filterByName">
       <span ng-bind="phone.name"></span>
    </li>
    

    在你的控制器中

    $scope.filterByName= function(phone){
       return (phone.name === 'jason Raq') || (phone.name === 'Mark');
    }
    

    Demo

    【讨论】:

      【解决方案2】:

      试试这个:

      <li ng-repeat="phone in (filteredNumber = (phones | filter : 'jason Raq').concat((phones | filter : 'Mark')))">
      

      DEMO

      这可行,但您似乎误解了角度过滤器的概念。

      过滤值用于匹配满足该值的元素。

      在您的代码中,就像您要指定多个值并使用 OR 条件来匹配满足其中一个值的任何元素。

      如果您需要做类似的事情,您必须编写自定义过滤器。像这样:

      app.filter('customFilter', function() {
          return function(input, filterValues) {
            var out = [];
            for (var i = 0; i < input.length; i++) {
               if (filterValues.indexOf(input[i]) >= 0){
                 out.push(input[i]);
               }
            }
      
            return out;
          }
        });
      

      使用它:

      <li ng-repeat="phone in (filteredNumber = (phones | customFilter : ['jason Raq','Mark']))">
      

      或者:

      <li ng-repeat="phone in phones | customFilter : ['jason Raq','Mark']">
      

      DEMO

      【讨论】:

        【解决方案3】:

        尝试将名称放在一个数组中,然后根据该数组过滤phones

        <li ng-repeat="phone in (filteredNumber =  (phones | filter : ['jason Raq','Mark'])">
        

        【讨论】:

          猜你喜欢
          • 2021-05-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-09-05
          • 1970-01-01
          相关资源
          最近更新 更多