2016-12-21 2 views
17

Wie funktioniert angular2 vorschlägtElse-Anweisung in Angular

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

im Fall, wenn unfinishedTodos.length >0

und Text "leer" in anderen Fällen zu machen.

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

Antwort

25

Syntax kompatibel mit kantigem 4.0 und darüber hinaus

<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 kantigem 2.0 und darüber hinaus

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

Wichtige

  • Sie können z. <div> oder jede andere Tag, statt <ng-container>

  • <template> hatte seit 4.0 für <ng-template> veraltet Namenskollision with already existing tag.

0

dieses Versuchen

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

Mit neuen Angular 4.0.0 Syntax für else-Anweisung sieht wie folgt 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 > 
+1

war zu langsam zu vermeiden. Einige weitere Beispiele https://github.com/angular/angular/blob/aaf6e05f56c8a5493875f45af895132ea30729ad/modules/%40angular/examples/common/ngIf/ts/module.ts –

+1

Ich hoffe, dass die Syntax noch schöner wird, wenn die Veröffentlichung kommt . –

+1

In Angular 4.0 '