Я пытаюсь отфильтровать некоторые элементы списка на основе значения логического свойства, но независимо от того, что я делаю, весь список всегда отображается. Некоторые из вещей, которые я пробовал, были настолько разрушены, что ничего не видно, но что ни здесь, ни там. Я не могу заставить свою фильтрацию работать по желанию:
$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)'
Ничто из этого не работает. Что мне не хватает?