javascript - 根据复选框值动态更改文本
问题描述
使用FormArray
我在我的组件上绑定了复选框,label
复选框的默认值为select,当我单击复选框时,label
将为每个复选框(应该是)更改为选中selectAll
状态,我还得到了将所有复选框的值更改为true
并将文本更改为选中的按钮,我的问题是:
- 当我只选择一个复选框时,更改
label
也会影响其他复选框 - 当我有
selectAll
复选框时,所有复选框标签都将更改为选中,然后如果我取消选中单个复选框,则应该更改label
为选中
这是我尝试过的:
.html 文件
<div *ngIf="isShowResponse">
<p>Inquiry Response</p>
<form [formGroup]="form" (ngSubmit)="submitSelectedCheckboxes()">
<ng-container formArrayName="receivedSummons" *ngFor="let summon of formReceivedSummons.controls; let i = index">
<ng-container [formGroupName]="i">
<input type="checkbox" formControlName="isChecked"
(change)="checkedState(summon)">
{{ summonText }}
</ng-container>
</ng-container>
</form>
<!-- <pre>{{form.value | json}}</pre> -->
<button (click)="selectAll()">Select All</button>
</div>
ts文件
checkedState(summon) {
summon.checked = !summon.checked;
this.summonText = summon.checked === true ? 'selected' : 'select';
}
selectAll() {
this.formReceivedSummons.controls.map(value => value.get('isChecked').setValue(true));
return this.summonText = 'selected';
}
这是我完整的stackblitz 演示,我可以使用一些建议和更好的实践来解决这个问题
解决方案
<div *ngIf="isShowResponse">
<p>Inquiry Response</p>
<form [formGroup]="form" (ngSubmit)="submitSelectedCheckboxes()">
<ng-container formArrayName="receivedSummons" *ngFor="let summon of formReceivedSummons.controls; let i = index">
<ng-container [formGroupName]="i">
<input type="checkbox" formControlName="isChecked">
{{ summon.get('isChecked').value ? 'selected' : 'select' }}
</ng-container>
</ng-container>
</form>
<!-- <pre>{{form.value | json}}</pre> -->
<button (click)="selectAll()">Select All</button>
</div>
推荐阅读
- spring-boot - Spring Boot 应用程序无法连接到 Docker 中的 Redis 副本
- asp.net - HEREAPI 地图不显示在 asp.net MVC 中
- python - Change Magento password account from Python script
- html - Checkbox does not hide a div
- node.js - If any Promise is rejected, how do you count the number of success in Promise.all?
- mysql - MySQL 选择在 %i:%s 中返回 '%H:%i:%s' 持续时间,其中 %i 也占 %H
- github - 防止 (.md) 文件中的换行符
- angular - Angular 路由器,在现有 url 上运行
- java - 升级 android studio 破坏了我的颤振构建(macOS)
- python - 将 h5 文件加载到 pytorch