Как предложил @Maxim Shoustin , лучший способ добиться того, чего вы хотите, - это использовать настраиваемый фильтр.
Но есть и другие способы, один из которых - использовать ng-if
директиву для того же элемента, в котором вы поместили ng-repeat
директиву (также здесь плункер ):
<ul>
<li ng-repeat="player in players" ng-if="player.name_key!='FirstPerson'"></li>
</ul>
Это может представлять незначительный недостаток с эстетической точки зрения, но имеет большое преимущество, заключающееся в том, что ваша фильтрация может быть основана на правиле, которое не так тесно связано с players
массивом и которое может легко получить доступ к другим данным в области вашего приложения:
<li
ng-repeat="player in players"
ng-if="app.loggedIn && player.name != user.name"
></li>
Обновление
Как уже говорилось, это одно из решений такого рода проблем, которое может соответствовать вашим потребностям, а может и не соответствовать.
Как указано в комментариях, ng-if
это директива, которая на самом деле означает, что в фоновом режиме она может выполнять больше действий, чем вы могли ожидать.
Например, ng-if
создает новую область видимости из ее родителя :
Область видимости, созданная в ngIf, наследуется от своей родительской области с использованием прототипного наследования.
Обычно это не влияет на нормальное поведение, но во избежание непредвиденных ситуаций вы должны помнить об этом перед внедрением.