I,无法设置未定义类型错误的属性“ IS_CHECK”

时间:2018-09-28 07:04:41

标签: html angular typescript

我正在尝试创建一个复选框,当它选中时,应该选择所有内容。我使用带有角度2示例的link处理了代码。

但是我收到一个名为“ ERROR TypeError:无法设置未定义的属性'IS_CHECK'的错误”

如何解决此错误。我似乎无法解决此问题。

这就是我所做的。

html:

<table class="table table-striped">
  <thead>
    <span class="btnRefresh">
      <i 
        class="fa fa-refresh" 
        [ngClass]="{'fa-spin': RefreshAnimate}" 
        (click)="OnRefrshClick()" 
        style="margin-top: 15px;">
      </i>
    </span>
    <tr>
      <th style="text-align: center">Application No</th>
      <th style="text-align: center">RPU No</th>
      <th style="text-align: center">Name with Initials</th>
      <th style="text-align: center">NIC/PP No</th>
      <th style="text-align: center">
        <input 
          type="checkbox" 
          name="selectedAll" 
          [(ngModel)]="selectedAll" 
          id="selectedAll" 
          (change)="CheckAll()">
      </th>
    </tr>
  </thead>

  <tbody>
    <tr 
      *ngFor="let transfer of AllTransfers | paginate: { itemsPerPage: 10, currentPage: _page, totalItems: _total}; let i = index">
      <td style="text-align: center">{{transfer.AA_APPLICATION_NO}}</td>
      <td style="text-align: center">{{transfer.AA_PREV_RPU_NO}}</td>
      <td style="text-align: center">{{transfer.AA_NAME_WITH_INTL}}</td>
      <td style="text-align: center">{{transfer.AA_NIC_NO || transfer.AA_PASSPORT_NO}}</td>
      <td style="text-align: center">
        <input 
          type="checkbox" 
          [(ngModel)]="transfer.IS_CHECK" 
          (change)="checkIfAllSelected()" 
          (click)="$event.stopPropagation()">
      </td>
    </tr>
  </tbody>
</table>

打字稿。

selectedAll: boolean = false;

CheckAll() {
  for (var i = 0; this.AllTransfers.length; i++) {
    this.AllTransfers[i].IS_CHECK = this.selectedAll;
    console.log(this.selectedAll);
  }
}

checkIfAllSelected() {
  this.selectedAll = this.AllTransfers.every(function(item: any) {
    return item.IS_CHECK == true;
  });
}

JSON对象是

Data: [{
  "AA_APPL_ID": 114731,
  "AA_NIC_NO": "835678904V",
  "AA_NAME_WITH_INTL": "R.DAYARATHNE",
  "AA_APPLICTION_NO": "SYS12132132",
  "IS_CHECK": false
}]

这是我尝试使用链接实现“全选”复选框的方式。帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

i < this.AllTransfers.length添加到for循环中。

for (var i = 0; i < this.AllTransfers.length; i++) {
  this.AllTransfers[i].IS_CHECK = this.selectedAll;
  console.log(this.selectedAll);
}