Tôi đang cố gắng lọc một số mục danh sách dựa trên giá trị của thuộc tính boolean, nhưng bất kể tôi làm gì, toàn bộ danh sách luôn được hiển thị. Một vài trong số những thứ tôi đã thử đã bị hỏng đến mức không có gì hiển thị, nhưng điều đó không ở đây cũng như ở đó. Tôi không thể làm cho bộ lọc của mình hoạt động như mong muốn:
$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}
];
Sử dụng bộ lọc ng-lặp lại sau:
<ul>
<li ng-repeat="person in attendees track by person.id | filter:arrived:'false'">
{{person.lastname}}, {{person.firstname}}
</li>
</ul>
Tôi cảm thấy như tôi đã thử mọi hoán vị mà tôi có thể tìm thấy được tham chiếu, hầu hết trong số đó đến từ các kết quả tìm kiếm StackOverflow khác nhau:
filter:'arrived'
filter:arrived
filter:'person.arrived'
filter:person.arrived
filter:{arrived:true}
filter:{arrived:'true'}
filter:{person.arrived:true}
filter:{person.arrived:'true'}
Tôi cũng đã thử tạo một chức năng lọc tùy chỉnh:
$scope.isArrived = function(item) {
return item.arrived;
};
Và áp dụng nó như vậy:
filter:isArrived
filter:'isArrived'
filter:{isArrived(person)}
filter:isArrived(person)
filter:'isArrived(person)'
Không có cái nào trong số này có vẻ hiệu quả. Tôi đang thiếu gì?
trackBy: ..
và hoạt động bình thường "như mọi thứ khác".