Như @Maxim Shoustin đã đề xuất, cách tốt nhất để đạt được những gì bạn muốn là sử dụng bộ lọc tùy chỉnh.
Nhưng có những cách khác, một trong số đó là sử dụng ng-if
chỉ thị trên cùng một phần tử khi bạn đặt ng-repeat
chỉ thị (ngoài ra, đây là plunker ):
<ul>
<li ng-repeat="player in players" ng-if="player.name_key!='FirstPerson'"></li>
</ul>
Điều này có thể gây ra một nhược điểm nhỏ từ góc độ este, nhưng có một lợi thế lớn là bộ lọc của bạn có thể dựa trên quy tắc không được kết hợp chặt chẽ với players
mảng và có thể dễ dàng truy cập dữ liệu khác trong phạm vi ứng dụng của bạn:
<li
ng-repeat="player in players"
ng-if="app.loggedIn && player.name != user.name"
></li>
Cập nhật
Như đã nêu, đây là một trong những giải pháp cho loại vấn đề này và có thể phù hợp với nhu cầu của bạn hoặc không.
Như đã chỉ ra trong các nhận xét, ng-if
là một chỉ thị, điều này thực sự có nghĩa là nó có thể thực hiện nhiều việc trong nền hơn bạn có thể mong đợi.
Ví dụ: ng-if
tạo một phạm vi mới từ phạm vi chính của nó :
Phạm vi được tạo trong ngIf kế thừa từ phạm vi cha của nó bằng cách sử dụng kế thừa nguyên mẫu.
Điều này thường không ảnh hưởng đến hành vi bình thường nhưng để đề phòng những trường hợp không mong muốn, bạn nên ghi nhớ điều này trước khi thực hiện.