我试图在我的ngFor内的复选框上设置默认值。 这是我的复选框项目数组:
tags = [{
name: 'Empathetic',
checked: false
}, {
name: 'Smart money',
checked: true
}, {
name: 'Minimal help after writing check',
checked: false
}, {
name: 'Easy term sheet',
checked: true
}];
这是我的HTML
<div class="form-group">
<div class="form-check" *ngFor="let tag of tags;">
<label class="form-check-label" for="tag{{tag.value}}">
<input
class="form-check-input"
type="checkbox"
id="tag{{tag.value}}"
name="tagOptions"
[(ngModel)]="tag.checked">
{{tag.name}}
</label>
</div>
</div>
所需的结果是获得2个选中,2个未选中的框,但所有这些框都未选中。我还尝试了[checked] =&#34; tag.checked&#34;的不同变体,但它似乎没有做到这一点。
答案 0 :(得分:15)
这解决了我选中/取消选中复选框的问题,而我仍然可以控制变量的变化。
HTML
changeCheckbox(tags, i) {
if (tags) {
this.tags[i].checked = !this.tags[i].checked;
}
}
.TS
display:inline
答案 1 :(得分:4)
使用checked属性而不是ngModel,
<div class="form-group">
<div class="form-check" *ngFor="let tag of tags">
<label class="form-check-label" for="tag{{tag.value}}">
<input
class="form-check-input"
type="checkbox"
id="tag{{tag.value}}"
name="tagOptions"
[checked]="tag.checked">
{{tag.name}}
</label>
</div>
</div>
<强> DEMO 强>
答案 2 :(得分:2)
我知道这是一个旧线程,但是最近我遇到了一个类似的问题,问题出在名称标签上,因为表单的每个复选框都相同,您可以按如下所示使用它:>
android:adjustViewBounds="true"
答案 3 :(得分:1)
这个问题救了我的大脑健康哈哈。但是我在正确答案中做了“升级”:
HTML:
<div class="form-group">
<div class="form-check" *ngFor="let tag of tags; let i = index;">
<label class="form-check-label" for="tag{{tag.value}}">
<input
class="form-check-input"
type="checkbox"
id="tag{{tag.value}}"
name="tagOptions"
(change)="changeCheckbox($event, i)"
[checked]="tag.checked">
{{tag.name}}
</label>
</div>
TS:
changeCheckbox(event, index){
this.tags[index] = event.target.checked;
}
答案 4 :(得分:0)
将名称标签用作ID:
<label class="form-check-label" for="tag{{tag.value}}">
<input
class="form-check-input"
type="checkbox"
id="tag{{tag.value}}"
name="tag{{tag.value}}"
[(ngModel)]="tag.checked">
{{tag.name}}
</label>