2016-12-21 22 views
17

Jak angular2 zaproponować renderowanieElse w Kątowymi

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

w przypadku, gdy unfinishedTodos.length >0

i tekst "pusty" w kolejnych przypadkach.

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> 

wygląda brzydko

Odpowiedz

25

Składnia zgodna z kątowa 4,0 i poza nią:

<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> 

lub

<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> 

Składnia zgodna z Kątowymi 2,0 i poza

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

Ważne

  • Możesz użyć np. <div> lub inny znacznik, zamiast <ng-container>

  • <template> były przestarzałe od 4,0 na korzyść <ng-template> aby uniknąć kolizji nazw with already existing tag.

0

Spróbuj

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

Dzięki nowej Kątowymi 4.0.0 składni else wygląda następująco:

<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

było zbyt powolne. Kilka innych przykładów https://github.com/angular/angular/blob/aaf6e05f56c8a5493875f45af895132ea30729ad/modules/%40angular/examples/common/ngIf/ts/module.ts –

+1

Mam nadzieję, że składnia będzie jeszcze ładniejsza do czasu wydania . –

+1

W Angular 4.0 '