Wie @Maxim Shoustin vorgeschlagen hat, ist der beste Weg, um das zu erreichen, was Sie wollen, die Verwendung eines benutzerdefinierten Filters.
Es gibt aber auch andere Möglichkeiten. Eine davon besteht darin, die ng-if
Direktive für dasselbe Element zu verwenden, in das Sie die ng-repeat
Direktive eingefügt haben (auch hier ist der Plunker ):
<ul>
<li ng-repeat="player in players" ng-if="player.name_key!='FirstPerson'"></li>
</ul>
Dies kann aus ästhetischer Sicht einen kleinen Nachteil darstellen, hat jedoch den großen Vorteil, dass Ihre Filterung auf einer Regel basieren kann, die nicht so eng an das players
Array gekoppelt ist und auf andere Daten im Anwendungsbereich Ihrer App problemlos zugreifen kann:
<li
ng-repeat="player in players"
ng-if="app.loggedIn && player.name != user.name"
></li>
Update
Wie bereits erwähnt, ist dies eine der Lösungen für diese Art von Problem und kann Ihren Anforderungen entsprechen oder nicht.
Wie in den Kommentaren ausgeführt, ng-if
handelt es sich um eine Richtlinie, die tatsächlich bedeutet, dass im Hintergrund möglicherweise mehr Dinge ausgeführt werden, als Sie erwarten.
Erstellt beispielsweise ng-if
einen neuen Bereich aus dem übergeordneten Bereich :
Der in ngIf erstellte Bereich erbt mithilfe der prototypischen Vererbung von seinem übergeordneten Bereich.
Dies wirkt sich normalerweise nicht auf das normale Verhalten aus. Um jedoch unerwartete Fälle zu vermeiden, sollten Sie dies vor der Implementierung berücksichtigen.