【发布时间】:2019-11-30 05:15:49
【问题描述】:
我正在尝试创建一个表,其中包含多个具有不同状态的复选框(有些是真的,有些是假的)。
在此表中,我有“保存”按钮来使用他的状态来填充所有元素。
代码如下:
<form #form="ngForm" (ngSubmit)="save(form)">
<table datatable [dtOptions]="dtOptions" [dtTrigger]="dtTrigger"
class="table table-hover table-bordered table-striped">
<thead>
<tr>
<th>{{'name-placeholder' | translate}}</th>
<th>{{'action' | translate}}</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let card of cardsDashboard;let i=index">
<td>{{card.text}}</td>
<td>
<div class="form-check">
<label>
<input type="checkbox" name="checkDashboard" [(ngModel)]="card[i]"
(ngModelChange)="card[i].activate==true?'true':'false'" [checked]="card.activate">
<span class="label-text"></span>
</label>
</div>
</td>
</tr>
</tbody>
</table>
<div class="btn-toolbar pull-right ">
<div class="btn-group">
<button class="btn btn-primary">{{'save' | translate}}</button>
</div>
</div>
</form>
第一个问题:“保存”按钮不会更新元素的状态。
第二个问题:复选框不显示默认状态。复选框为空。
所以问题是:我怎样才能用复选框做一个 ngfor 并显示状态并更新它?
----更新:数组-----
0:
activate: true
cardType: 1
id: 1
text: "Contadores"
__proto__: Object
1: {id: 2, text: "Alarmas", cardType: 2, activate: false}
2: {id: 3, text: "Consumo día anterior", cardType: 3, activate: false}
3: {id: 4, text: "Consumo del mes anterior", cardType: 4, activate: false}
4: {id: 5, text: "Elementos instalados la ultima semana", cardType: 5, activate: false}
5: {id: 6, text: "Elementos que han comunicado hoy", cardType: 6, activate: false}
【问题讨论】:
-
可以使用表单数组
-
将 [(ngModel)]="card[i]" 更改为 [(ngModel)]="card.activate" 并且不需要有 (ngModelChange) 和 [checked]
-
@Arash 我使用 'card' 所有元素都有相同的模型,所以我不能采取单独的状态。
-
@ElHombreSinNombre 你能过去你的 JSON 数据吗?
-
问题已更新。