0

我有一个 Angular 2 代码,我使用 *ngFor 在某个包中循环,然后我使用 ngIf 作为表头,然后相应地显示值。问题是当桌子只有一个包时,它工作得很好。当我有多个包时,代码会在那个时间点分解。当包只有一列数据时它可以正常工作,但是当它有多个数据时意味着点击功能的多列 - “全选并取消全选”停止工作。有人可以指导下面的代码中可能出现的问题。

<ng-container *ngFor="let pack of myobj.packages">
   <th *ngIf="myobj.type != 'A' && myobj.type != 'B'">
       {{pack.name}} 
   </th>
   <th *ngIf="(myobj.type!= 'A' && myobj.type != 'B') && myobj.electable">
       <span>
          <a (click)="myfn()">Elect All</a>
          <span *ngIf="myobj.type!='O'">|<a (click)="myfn()">Unelect All</a>
          </span>
       </span>
       <ng-container *ngFor="let pack of myobj.packages">
           <th *ngIf="myobj.type=='B' || myobj.type=='A'">
               {{pack.name}} 
           </th>
       </ng-container>
   </th>
</ng-container> 
4

1 回答 1

0

看来您一直在检查错误的值并具有重复的数组名称:

“让包 myobj.packages”

如果您的数组 myobj.packages 具有“类型”、“名称”、“可选”等属性,请尝试以下代码

<ng-container *ngFor="let pack of myobj.packages">
   <th *ngIf="pack.type != 'A' && pack.type != 'B'">
       {{pack.name}} 
   </th>
   <th *ngIf="(pack.type!= 'A' && pack.type != 'B') && pack.electable">
       <span>
          <a (click)="myfn()">Elect All</a>
          <span *ngIf="pack.type!='O'">|<a (click)="myfn()">Unelect All</a>
          </span>
       </span>
       <ng-container *ngFor="let pack1 of myobj.packages">
           <th *ngIf="pack1.type=='B' || pack1.type=='A'">
               {{pack1.name}} 
           </th>
       </ng-container>
   </th>
</ng-container>
于 2018-02-04T07:11:59.643 回答