2016-08-23 8 views
1

私はクライアントにjsonデータを表示します。サーバが配列を送る場合、* ngfor = "item of items"で扱うことができますが、サーバは* ngforで実装できない1行jsonを送ることができます。条件付き* ngfor実装することができますどのように :事前にangularjs2条件付き* ngfor

<div *ngFor="let item of (Array.isArray(items) ? items : [items]) 

私はそれは、アイテムを配列として使用されるべき配列型であれば、変数の項目をチェックしたい、そうでない場合は1行ジェイソン

感謝を

答えて

1

*ngIfステートメントで2つのdivを作成し、ngForを使用してサーバーが配列を返すことをお勧めします。

<div *ngIf="Array.isArray(items)" *ngFor="let item of items">{{item}}</div> 
<div *ngIf="!Array.isArray(items)">{{items | json}}</div> 

これは、コードで何が起こっているのか一目からよりよい理解を与えます。それが助けてくれることを願っています

0

ありがとうございます。あなたがお勧めのよう 私は、次のコードを試してみました、それは

<div [ngSwitch]="items.length > 0"> 
    <div *ngSwitchCase="true"> 
    <div *ngFor="let item of items"> 
     <md-checkbox 
      [checked]= "item[valueKey] == trueValue" 
      [disabled]="disabled" 
      align="start" 
      (change)="onChange($event,item,valueKey)" 
      (onInputFocus)="onFocus()"> 
       {{item[labelKey]}} 
    </md-checkbox> 
    </div> 

<md-checkbox 
      [checked]= "items[valueKey] == trueValue" 
      [disabled]="disabled" 
      align="start" 
      (change)="onChange($event,items,valueKey)" 
      (onInputFocus)="onFocus()"> 
     {{items[labelKey]}} 
    </md-checkbox> 
</div> 

の作品