Angular2はどのようにレンダリングすることを提案しますか
<div *ngFor="let todo of unfinishedTodos">
{{todo.title}}
</div>
場合unfinishedTodos.length >0
また、別の場合は「空」のテキスト。
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>
ugい
Angular 4.0以降)と互換性のある構文
<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>
または
<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>
Angular 2.0以降)と互換性のある構文
<ng-container *ngIf="expression">
true
</ng-container>
<ng-container *ngIf="!expression">
else
</ng-container>
重要
あなたは使用することができます<div>
の代わりに<ng-container>
、またはその他のタグ
<template>
は、名前の衝突を避けるために<ng-template>
を支持して4.0から非推奨になりました 既存のタグを使用
新しいAngular 4.0.0 elseステートメントの構文は次のようになります。
<div *ngIf="unfinishedTodos && unfinishedTodos.length > 0; else empty">
<div *ngFor="let todo of unfinishedTodos">
{{todo.title}}
</div>
</div>
<ng-template #empty>
empty
</ng-template >
これを試して
<div *ngFor="let todo of unfinishedTodos">
{{todo.title}}
</div>
<div *ngIf="!unfinishedTodos?.length">
empty
</div>