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