【发布时间】:2014-02-20 09:03:38
【问题描述】:
我正在尝试根据布尔属性的值过滤一些列表项,但无论我做什么,都会显示整个列表。我尝试过的一些东西已经被破坏了,以至于什么都没有显示,但这既不是这里也不是那里。我无法按要求进行过滤:
$scope.attendees = [
{"firstname":"Steve", "lastname":"Jobs", "arrived":true, "id":1}
,{"firstname":"Michelle", "lastname":"Jobs", "arrived":false, "id":2}
,{"firstname":"Adam", "lastname":"Smith", "arrived":true, "id":3}
,{"firstname":"Megan", "lastname":"Smith", "arrived":false, "id":4}
,{"firstname":"Dylan", "lastname":"Smith", "arrived":false, "id":5}
,{"firstname":"Ethan", "lastname":"Smith", "arrived":false, "id":6}
];
使用以下 ng-repeat 过滤:
<ul>
<li ng-repeat="person in attendees track by person.id | filter:arrived:'false'">
{{person.lastname}}, {{person.firstname}}
</li>
</ul>
我觉得我已经尝试了所有可以找到引用的排列,其中大部分来自各种 StackOverflow 搜索结果:
filter:'arrived'filter:arrivedfilter:'person.arrived'filter:person.arrivedfilter:{arrived:true}filter:{arrived:'true'}filter:{person.arrived:true}filter:{person.arrived:'true'}
我也尝试过创建自定义过滤功能:
$scope.isArrived = function(item) {
return item.arrived;
};
并如此应用它:
filter:isArrivedfilter:'isArrived'filter:{isArrived(person)}filter:isArrived(person)filter:'isArrived(person)'
这些似乎都不起作用。我错过了什么?
【问题讨论】:
标签: angularjs angularjs-ng-repeat