As @Maxim Shoustin önerdi en iyi yolu özel bir filtre kullanmak olacaktır istediğini elde etmek.
Ancak başka yollar da var, bunlardan biri ng-if
yönergeyi aynı öğede kullanmaktır, yönergeyi koyduğunuzda ng-repeat
(ayrıca, burada plunker ):
<ul>
<li ng-repeat="player in players" ng-if="player.name_key!='FirstPerson'"></li>
</ul>
Bu, estetik açıdan küçük bir dezavantaj sunabilir, ancak filtrelemenizin players
diziye sıkı bir şekilde bağlı olmayan ve uygulamanızın kapsamındaki diğer verilere kolayca erişebilen bir kurala dayalı olabilmesi gibi büyük bir avantaja sahiptir :
<li
ng-repeat="player in players"
ng-if="app.loggedIn && player.name != user.name"
></li>
Güncelleme
Belirtildiği gibi, bu bu tür bir sorun için çözümlerden biridir ve ihtiyaçlarınızı karşılayabilir veya karşılamayabilir.
Yorumlarda belirtildiği gibi ng-if
, bir direktiftir, bu da aslında arka planda beklediğinizden daha fazla şey yapabileceği anlamına gelir.
Örneğin, ng-if
üstünden yeni bir kapsam oluşturur :
NgIf içinde oluşturulan kapsam, prototip mirasını kullanarak üst kapsamından miras alır.
Bu genellikle normal davranışı etkilemez ancak beklenmedik durumları önlemek için uygulamadan önce bunu aklınızda bulundurmalısınız.