Jak zasugerował @Maxim Shoustin , najlepszym sposobem osiągnięcia tego, co chcesz, byłoby użycie niestandardowego filtra.
Ale są też inne sposoby, jednym z nich jest użycie ng-if
dyrektywy w tym samym elemencie, w którym umieściłeś ng-repeat
dyrektywę (również, tutaj jest plunker ):
<ul>
<li ng-repeat="player in players" ng-if="player.name_key!='FirstPerson'"></li>
</ul>
Z estetycznego punktu widzenia może to stanowić niewielką wadę, ale ma tę główną zaletę, że filtrowanie może opierać się na regule, która nie jest tak ściśle powiązana z players
tablicą i może łatwo uzyskać dostęp do innych danych w zakresie aplikacji:
<li
ng-repeat="player in players"
ng-if="app.loggedIn && player.name != user.name"
></li>
Aktualizacja
Jak wspomniano, jest to jedno z rozwiązań tego rodzaju problemu i może, ale nie musi, odpowiadać Twoim potrzebom.
Jak wskazano w komentarzach, ng-if
jest to dyrektywa, co w rzeczywistości oznacza, że może zrobić więcej rzeczy w tle, niż można by się spodziewać.
Na przykład ng-if
tworzy nowy zakres z jego rodzica :
Zakres utworzony w ngIf dziedziczy po swoim zakresie nadrzędnym przy użyciu dziedziczenia prototypowego.
Zwykle nie wpływa to na normalne zachowanie, ale aby zapobiec nieoczekiwanym przypadkom, należy o tym pamiętać przed wdrożeniem.