javascript - Angular 多重 ng-repeat 多重过滤器

标签 javascript jquery html angularjs

我有一个带有多个过滤器的多个 ng-repeat 列表。

我使用 (ex:A.value) if (ex:B.value) ,但我想使用多个过滤器。

我想要多个过滤器recommend_search、skill_search和 language_search,

那么搜索结果就是要整体改变(html div class="panel")

现在recommend_search过滤器没问题,但是skill_search和language_search过滤器只是跨度范围(html span id="language"和 span id="skill")

如何对搜索结果进行多个过滤以更改整体(html div class="panel")?

Angular.js

$scope.recommend=[];
  $http.get('/recommend/ajax').success(function (data, status) {
     $scope.recommend = data;
  });

html

<div ng-controller="recommendCtrl">
<!-- search -->
<div class="col-lg-12" style="margin-bottom:20px;">
    <div class="input-group">
        <span class="input-group-btn">
          <input type="text" class="form-control" placeholder="recommend search" ng-model="recommend_search.name">
        </span>
        <span class="input-group-btn">
          <input type="text" class="form-control" placeholder="skill search" ng-model="skill_search.skill_name">
        </span>
        <span class="input-group-btn">
          <input type="text" class="form-control"  placeholder="language search" ng-model="language_search.languagelv_name">
        </span>
    </div>
</div>

<!-- recommend -->
<div class="panel panel-default" ng-repeat="(key, value) in recommend.recommend  | orderBy:'-id' | filter:recommend_search">
    <div class="panel-body">
        <!-- content -->
        <div class="panel-content">
                <label class="ahr-label_bs">
                    @{{ value.family_name}}@{{value.surname}}
                    <span ng-if="value.sex == 1">♂</span>
                    <span ng-if="value.sex == 0">♀</span>
                </label>
                <span>@{{value.name}}</span>
                <!-- skill -->
                <label class="label-gray">skill</label>
                <span id="skill" ng-repeat="skill in recommend.personnels_skill  | filter:skill_search" ng-if="value.personnels_id == skill.personnels_id">
                              @{{skill.skill_name}}、
                            </span></p>
                <!-- language -->
                <label class="label-gray">language</label>
                <span id="language" ng-repeat="language in recommend.languagelvs  | filter:language_search" ng-if="value.personnels_id == language.personnels_id">
                              @{{language.languagelv_name}}、
                </span>

                <label class="label-gray">country</label><span>@{{ value.country }}</span></p>
        </div>
    </div>
</div>

最佳答案

您可以链接过滤器。

<div class="panel panel-default" ng-repeat="(key, value) in recommend.recommend  | orderBy:'-id' | filter:recommendSearch | filter:anotherFilter | filter: oneMoreFilter">

关于javascript - Angular 多重 ng-repeat 多重过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43065093/

相关文章:

html - 从三分之一列到二分之一列

javascript - Angularjs 输入单选和 ng-repeat 问题

javascript - 如何获取选择选项的值,并使用它来查询数组,以填充另一个输入

javascript - 快照监听器中 Uncaught Error : FirebaseError: no matching index found

javascript - 如何使用JQuery为同一个类的元素分别添加不同的内容

javascript - JQueryUI如何 'self'关闭对话框

javascript - 触发事件不会激活选项卡

javascript - 将文本复制到具有相同 ID 的两个输入

javascript - 除了 Array.prototype.join() 之外,是否还有一种更短的方法将数组连接到一个字符串?

html - 响应式地将多个图像放入一个容器中