2017-05-21 3 views
0

ich diesen Code in Vorlage habe:Angular, IF-Anweisung in Vorlage

<div *ngFor="let user of users | async" class="beacon-label me" [ngStyle]="{ 'top':user.posY+'px', 'left':user.posX+'px' }" > 
     <div class="userId"><p>{{user.$key}}</p></div> 
</div> 

Dieser Code zeigt alle Benutzer, aber ich will nicht (mit dem Alter unter 15 Benutzer) mit einigen spezifischen Attributen Benutzer anzuzeigen. Ich habe versucht, aber es hat nicht funktioniert.

+0

ich Ihre Frage unter 'angular' markiert haben, da' angularjs' für Fragen zu AngularJS v1 verwandt ist. + –

+2

Ich sehe nicht, Ihr '* ngIf', oder was passiert, wenn Sie es getan haben, oder was du wirklich meinst "funktioniert nicht" .. – Makoto

Antwort

0
<div *ngFor="let user of users | async" class="beacon-label me" [ngStyle]="{ 'top':user.posY+'px', 'left':user.posX+'px' }" > 
     <div class="userId" 
      *ngIf="user.age < 15"> <!-- Change age with appropriate user key you are looping --> 
       <p>{{user.$key}}</p> 
     </div> 
</div> 
0

Verwendung ng-template für die

<ng-template ngFor let-user [ngForOf]="users | async"> 
    <div class="beacon-label me" [ngStyle]="{ 'top':user.posY+'px', 'left':user.posX+'px' }" > 
     <div *ngIf="user.age < 15" class="userId"><p>{{user.$key}}</p></div> 
    </div> 
</ng-template> 

wo die *ngIf ist - Ihr Prädikat setzen.

0

Es wäre einfacher gewesen, filter über die users Observable zu setzen. Nutzen Sie die Leistung von Observable.

//Assuming getUser method is method of userService returns `Observable` 
this.users = this.userService.getUser().filter(user => user.age < 15)