通过输入和自定义功能进行角度滤波

时间:2015-10-08 08:07:24

标签: angularjs filter

Sloved!看下面的内容。

我正在尝试使用自定义函数和输入搜索来过滤角度。

我的HTML看起来像:

INSERT

其中'searchInput'是基本输入标记,函数'filterGuests'看起来像:

/(?<!['])(?<![;])[;](?![;])(?!['])/g

我想要做的是在'filterGuest'实际过滤了大部分来宾之后,还能够执行搜索。 如何通过功能和输入实现过滤器?

Sloved! 我通过改变HTML和控制器来实现这一目标。 在HTML中,我将其更改为:

<md-list-item class="md-3-line" ng-repeat="guest in guestList | filter:filterGuests && searchInput" >
     <div class="md-list-item-text">
         <h3>{{guest.name}}</h3>
     </div>
 </md-list-item>

我修改了控制器,我把过滤器取为:

$scope.filterGuests = function(guest){
    if($scope.$parent.filters[guest.status] == true)
        return true;
    return false;

参数作为:

传递给过滤器
<md-list-item class="md-3-line" ng-repeat="guest in guestList | filterGuests:searchInput:this" >
     <div class="md-list-item-text">
         <h3>{{guest.name}}</h3>
     </div>
 </md-list-item>

所有项目列表(在我的情况下为guest),搜索输入和$ scope(我需要访问范围之外的变量)。

我在这里找到的所有答案:https://stackoverflow.com/a/11997076/2346370

谢谢Bas Slagter,我不知道我怎么也没想过再传一个论点。

1 个答案:

答案 0 :(得分:0)

您可以将searchInput的值传递给filterGuests过滤器,以便在过滤时使用它。

<md-list-item class="md-3-line" ng-repeat="guest in guestList | filterGuests:searchInput" >
     <div class="md-list-item-text">
         <h3>{{guest.name}}</h3>
     </div>
 </md-list-item>

我做了一个小例子:http://jsfiddle.net/basslagter/p7czcssq/1/