web-dev-qa-db-ja.com

Angularのその他のステートメント

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い

18
gstackoverflow

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から非推奨になりました 既存のタグを使用

27

新しい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 >
5
Matej Maloča

これを試して

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