angularjs2 conditional * ngfor

时间:2016-08-23 07:32:21

标签: angularjs arrays loops conditional

我想在客户端显示json数据。如果服务器发送一个数组,它可以由* ngfor ="项目项目#34;来处理,但服务器可以发送一行json,这些json无法用* ngfor实现,因为有了* ng,我们可以只有一个阵列。 如何实现条件* ngfor:

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

我想检查items变量,如果是数组类型,则项应该用作数组,否则一行jason

提前致谢

2 个答案:

答案 0 :(得分:1)

我建议您使用*ngIf语句创建两个div,并在服务器返回数组时使用ngFor。

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

从一开始就可以更好地理解代码中发生了什么。希望它会有所帮助

答案 1 :(得分: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>