【发布时间】:2020-06-26 23:29:36
【问题描述】:
我正在制作问题列表(问题名称和是/否复选框)
问题是,当我点击第二个问题复选框时,它仍然会更改第一个组件的问题。
这是我的代码:
呈现问题列表:
<div *ngFor="let question of questions">
<app-question [question]="question"></app-question>
</div>
每个问题:
<div class="question">
{{question}}
<div class="checkboxes">
<label class="checkbox-label">
<input class="checkbox" [(ngModel)]="checked.yes" (ngModelChange)="checkboxChanged('yes')" type="checkbox" id="check1"/>
<label for="check1" class="custom-checkbox"></label>
</label>
<label class="checkbox-label">
<input class="checkbox" [(ngModel)]="checked.no" (ngModelChange)="checkboxChanged('no')" type="checkbox" id="check2"/>
<label for="check2" class="custom-checkbox"></label>
</label>
</div>
</div>
checkboxChanged(value): void {
value === 'yes' ? this.checked["no"] = false : this.checked["yes"] = false;
}
谢谢
编辑: https://stackblitz.com/edit/angular-59bkvw
解决方案: 问题是我的输入和标签在组件之间共享相同的 ID。 我分配了一个唯一的 ID,例如 id="{{question}}" 并且它有效。谢谢大家的帮助。
【问题讨论】:
-
你能创建一个堆栈闪电战来复制这个问题吗?
-
我更新了主帖,谢谢
-
你的代码没问题。你的css有问题。如果您从
question.component.css中删除所有代码,一切都会按预期工作。 -
我通过为输入和标签分配不同的 id 来修复它,谢谢