我试图根据布尔属性的值筛选一些列表项,但无论我做什么,整个列表总是显示出来。我尝试了一些方法,但有些已经坏掉了,什么都没有显示出来,但这并不重要。我无法让我的筛选按预期工作:
$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:arrived
filter:'person.arrived'
filter:person.arrived
filter:{arrived:true}
filter:{arrived:'true'}
filter:{person.arrived:true}
filter:{person.arrived:'true'}
我还尝试创建自定义过滤函数:
$scope.isArrived = function(item) {
return item.arrived;
};
应用如下:
filter:isArrived
filter:'isArrived'
filter:{isArrived(person)}
filter:isArrived(person)
filter:'isArrived(person)'
这些都似乎不起作用。我错了什么?
trackBy:..
并像“其他所有东西”一样正常运作。 - user2864740