wake-up-neo.com

Else Aussage in Angular

Wie wird eckig2 gerendert?

<div *ngFor="let todo of unfinishedTodos">
    {{todo.title}}
</div>

falls unfinishedTodos.length >0

und Text "leer" in anderen Fällen.

P.S.

<div *ngIf="unfinishedTodos && unfinishedTodos.length > 0">
    <div *ngFor="let todo of unfinishedTodos">
        {{todo.title}}
    </div>
</div>
<div *ngIf="!unfinishedTodos ||  unfinishedTodos.length <= 0">
    empty
</div>

sieht hässlich aus

17
gstackoverflow

Syntax kompatibel mit Angular 4.0 und höher

<ng-template #elseTemplate>
  Content displayed if expression returns false
</ng-template>
<ng-container *ngIf="expression; else elseTemplate">
  Content displayed if expression returns true
</ng-container>

oder

<ng-container *ngIf="expression; then thenBlock; else elseBlock"></ng-container>
<ng-template #thenBlock>
  Content displayed if expression returns true
</ng-template>
<ng-template #elseBlock>
  Content displayed if expression returns false
</ng-template>

Syntax kompatibel mit Angular 2.0 und höher

<ng-container *ngIf="expression">
    true
</ng-container>
<ng-container *ngIf="!expression">
    else
</ng-container>

Wichtig

25

Mit der neuen Angular 4.0.0-Syntax für else sieht die Anweisung folgendermaßen aus:

<div *ngIf="unfinishedTodos && unfinishedTodos.length > 0; else empty">
   <div *ngFor="let todo of unfinishedTodos">
      {{todo.title}}
   </div>
</div>
<ng-template #empty>
   empty
</ng-template >
4
Matej Maloča

Versuche dies

<div *ngFor="let todo of unfinishedTodos">
    {{todo.title}}
</div>
<div *ngIf="!unfinishedTodos?.length">
    empty
</div>
0
Sergey Sokolov