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>
我想 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>