ng-repeat 过滤器仅迭代具有特定 属性 值的元素

ng-repeat filter to iterate only over elements with certain property value

我想 ng-repeat 一个数组,但是 filter 结果只显示与某个 属性 值匹配的元素。这可能吗?如何实现?

这是我正在尝试做的事情的一个例子(显然失败了):

HTML(查看)

<ul>
  <li ng-repeat="person in people | filter: person.gender == 'male'"></li>
</ul>

<ul>
  <li ng-repeat="person in people | filter: person.gender == 'female'"></li>
</ul>

JS(控制器)

$scope.people = [

  {name: "John", gender: "male"},

  {name: "Sue", gender: "female"},

  {name: "Maria", gender: "female"},

  {name: "Bob", gender: "male"},

]

所以第一个列表应该根据 属性 值打印男性名字,第二个列表应该打印女性名字。

这可以使用 ng-repeat 的过滤器吗?或者,如果没有,还有其他方法吗?

提前致谢

试试这个。 如果将 :true 放在过滤器之后,则过滤将完全根据匹配值执行。

function Main($scope) {
    $scope.people = [

  {name: "John", gender: "male"},

  {name: "Sue", gender: "female"},

  {name: "Maria", gender: "female"},

  {name: "Bob", gender: "male"}

];
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app>
    <div ng-controller="Main">
      <ul>
  <li ng-repeat="person in people | filter: { gender: 'male' }:true">
   {{person.name}}
  </li>
</ul>

    </div>
</div>