Angular 材料复选框不适用于其';选中';派生词
我有一个记录表,其中每列的第一个单元格都有一个复选框。单击复选框时,我将该记录的id存储到typescript中的数组中:Angular 材料复选框不适用于其';选中';派生词,angular,typescript,angular-material,Angular,Typescript,Angular Material,我有一个记录表,其中每列的第一个单元格都有一个复选框。单击复选框时,我将该记录的id存储到typescript中的数组中: onCheckboxClick(id) { if (this.selectedInvoiceables.indexOf(id) > -1) { this.selectedInvoiceables.splice(id, 1); } else { this.selectedInvoiceables.push(id); } if (this.
onCheckboxClick(id) {
if (this.selectedInvoiceables.indexOf(id) > -1) {
this.selectedInvoiceables.splice(id, 1);
} else {
this.selectedInvoiceables.push(id);
}
if (this.selectedInvoiceables.length > 1) {
this.disableBulkEdit = false;
} else {
this.disableBulkEdit = true;
}
}
下面是复选框:
<mat-checkbox
class="checkbox"
(change)="onCheckboxClick(invoice.id)"
id = "invoiceCheckbox{{invoice.id}}"
[checked]="selectedInvoiceables.indexOf(invoice.id) > -1"
> </mat-checkbox>
因此,每当单击复选框时,我们都会存储id。这很好,但是,似乎存在一个问题,即单击一个复选框将取消选择另一个复选框,即使该值仍然包含在my
SelectedVoiceables
数组中。我当前对[checked]
衍生工具的检查是否不够好或不定期刷新?您可以尝试使用[(ngModel)]=''
语法将复选框的模型/状态绑定到以下值:
[(ngModel)]=“
语法将复选框的模型/状态绑定到以下值:
.splice()
时,第一个参数应该是数组元素的索引,而不是元素本身。传递.indexOf()
@DarthJDG的结果谢谢,我会给你那张有效的照片谢谢!调用.splice()
时,第一个参数应该是数组元素的索引,而不是元素本身。传递.indexOf()
@DarthJDG的结果谢谢,我会给你那张有效的照片谢谢!您是否建议使用[(ngModel)]=“selectedInvoiceables.indexOf(invoice.id)>-1”
?我在评论中使用了达斯的解决方案,但这也满足了我的需要,因此我批准它以获得正确答案。您是否建议使用[(ngModel)]=“selectedInvoiceables.indexOf(invoice.id)>-1”
?我在评论中使用了达斯的解决方案,但这也满足了我的需要,因此我批准它的正确答案。