【发布时间】:2019-05-04 15:11:35
【问题描述】:
我有一个动态创建的表单,它有一个简单的列表(在 ngFor 中创建),它有:
- 处理点击的父 div:它选择或取消选择当前项。
- 该 div 的子复选框,应该显示给定项目的选中/未选中状态。
如果单击 div,一切都会按预期进行,但如果单击复选框,则不会发生任何事情。就像复选框中的点击与 div 的点击相撞,根本没有改变值。
到目前为止,我发现的“最干净”的解决方案根本不是一个干净的解决方案,因为我仍然无法单击复选框,但至少它不会给我这种奇怪的功能。看看吧:
<div class="popup-elem" *ngFor="let option of selectedCategory?.options" (click)=" option.active = !option.active"
[ngStyle]="option.active == true
? {'background-color':'aliceblue'}
: {'background-color':'white'}">
<input type="checkbox" [checked]="option.active" style="z-index:550" [disabled]="true">
{{ option.name }}
</div>
我用 NgModel 等尝试了其他东西,但到目前为止,这是我所拥有的最好的。如果至少可以在单击复选框时触发 div 的单击事件,我会很高兴,但我不知道该怎么做。
有什么想法吗?
【问题讨论】:
-
您的问题到底是什么?你的代码看起来不错!是否要“重新启用”复选框?
-
问题是,如果我单击复选框(未禁用时),它不会做任何事情。我需要单击 div 才能选择/取消选择项目。对于喜欢点击复选框而不是父组件的那种用户来说,这是有问题的。
标签: javascript html angular