首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >角ng-在元素中重复条件包装项(ng-重复组中的筛选项)

角ng-在元素中重复条件包装项(ng-重复组中的筛选项)
EN

Stack Overflow用户
提问于 2016-03-24 09:12:48
回答 1查看 613关注 0票数 0

当在某些职业中找不到过滤用户时,我试图隐藏职业名称。

JS:

代码语言:javascript
复制
$scope.contacts = [
    {name: 'John', occupation: 'occupation 1'},
    {name: 'George', occupation: 'occupation 2'},
    {name: 'Jeck', occupation: 'occupation 3'},
    {name: 'Paula', occupation: 'occupation 1'},
    {name: 'Scruath', occupation: 'occupation 3'}
];

HTML:

代码语言:javascript
复制
<input type="text" ng-model="query">
<div ng-repeat="(key, occupation) in contacts | groupBy: 'occupation'">
    <p ng-bind="occupation[0].occupation"></p>
    <div>
        <div ng-repeat="contact in occupation | filter:search">
            <p ng-bind="::contact.fullName"></p>
            <p ng-bind="::contact.email"></p>
        </div>
    </div>
</div>

结果:

职业名称:“职业1”

  • 姓名:“约翰”
  • 姓名:“保拉”

职业名称:“职业2”

  • 姓名:“乔治”

职业名称:“职业3”

  • 姓名:"Jeck“
  • 名称:“斯克鲁斯”

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-24 12:11:30

对您的问题有两种解决方案:

  • 对筛选后的数组使用ng-show
  • 使用顶部ng-repeat上的排序。

小提琴上的实例。

代码语言:javascript
复制
angular.module('ExampleApp', ['angular.filter'])
  .controller('ExampleController', function($scope) {
    $scope.contacts = [{
      name: 'John',
      occupation: 'occupation 1'
    }, {
      name: 'George',
      occupation: 'occupation 2'
    }, {
      name: 'Jeck',
      occupation: 'occupation 3'
    }, {
      name: 'Paula',
      occupation: 'occupation 1'
    }, {
      name: 'Scruath',
      occupation: 'occupation 3'
    }];
  });
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-filter/0.5.8/angular-filter.js"></script>
<div ng-app="ExampleApp">
  <div ng-controller="ExampleController">
    <input type="text" ng-model="query">
    <h3>
    Filter with new array filtered
    </h3>
    <div ng-repeat="(key,occupation) in contacts| groupBy: 'occupation'" ng-show="filterOccupation.length">

      <p ng-bind="key"></p>
      <div>
        <div ng-repeat="contact in filterOccupation = (occupation|filter:query)">
          <p ng-bind="::contact.name"></p>
        </div>
      </div>
    </div>

    <h3>
    Filter with extra filtered
    </h3>
    <div ng-repeat="(key,occupation) in contacts|filter:query | groupBy: 'occupation'">

      <p ng-bind="key"></p>
      <div>
        <div ng-repeat="contact in occupation|filter:query ">
          <p ng-bind="::contact.name"></p>
        </div>
      </div>
    </div>
  </div>
</div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36196572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档