我正在尝试创建一个复选框,当它选中时,应该选择所有内容。我使用带有角度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
}]
这是我尝试使用链接实现“全选”复选框的方式。帮助将不胜感激。
答案 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);
}