【发布时间】:2018-04-30 08:10:20
【问题描述】:
我通过将复选框放置在标签内来将其样式化为按钮
<label>
<input type="checkbox" name="...">
</label>
我需要根据复选框是否被选中来切换父标签的类。现在,这很容易使用 [ngClass] 和布尔值。问题是,我还使用 *ngFor 指令循环元素。这显然曾经在 Angular 1.x.x 中工作,但在 Angular 2/4/... 中,它为所有重复的元素添加/删除了类。 这可以通过直接访问父 DOM 元素 classList 轻松解决,但这在 Angular 中被认为是一种不好的做法。有任何 Angular 方法可以做到这一点,还是我必须完全改变我的方法?
编辑:我的代码 编辑 2:错误的代码,已修复。
<label *ngFor="let item of object.array" [ngClass]="{'label-active': checked}">
{{item}}
<input (click)= "checked = !checked" type="checkbox" name="..." id="..." class="sr-only">
</label>
【问题讨论】: