我有一个要求,如果我在输入字段中输入2,我需要自动选择另一个表中的matcheckbox。如下面的图片所示,如果im根据需要自动选择复选框的输入字段来输入< / p>
<mat-form-field fxFlex="45">
<input fxFlex matInput placeholder="Enter Total Damage Count"
formControlName="count" id="count" type="number"
class="form-control" required>
</mat-form-field>
<td mat-cell *matCellDef="let element;let i =index">
<mat-checkbox class="example-margin" #damageCheckBox [checked]="element.damage"
[ngClass]="(element.isDamage)? 'mat-checkbox-checked':''"
(change)="addDamaged(element.id ,i)">Is Damaged</mat-checkbox>
</td>
答案 0 :(得分:0)
您可以使用包含输入内容的formGroup(或formControl)中的valueChanges
来实现。
在组件类中,您应该有一个FormGroup实例,因此使用以下代码,您可以对表单中的更改做出反应。
myForm.get('count').valueChanges.subscribe(value => {
if (value === 2) {
// Autoselect the checkboxes
}
});
然后,要更新复选框,应将所有项目的damage
标志更改为true,并强制表重新呈现新的更改。由于它是MatTable,因此可以通过使用renderRows方法或仅通过将数组的新副本分配给表的源来实现。