Я намагаюся відфільтрувати деякі елементи списку на основі значення логічної властивості, але незалежно від того, що я роблю, весь список завжди відображається. Деякі речі, які я спробував, були настільки зламані, що нічого не відображається, але це ні тут, ні там. Я не можу змусити свою фільтрацію працювати належним чином:
$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}
];
Використовуючи таку фільтрацію повторення нг:
<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: ..
і діяло нормально "як і все інше".