Angular - 在按钮点击时切换两个 类
Angular - toggle two classes on button clicks
我是 angular 的初学者,我正在尝试解决无法在单击按钮时切换 class 的问题。
这是一个测验应用程序,在 true/false 问题格式中有 4 个语句和 2 个按钮来标记勾号或交叉,但可以使用一个活动的 class (真或假)。现在,我使用的逻辑不会在单击其他按钮时删除其他 class。任何帮助,将不胜感激。
工作堆栈闪电战演示: https://stackblitz.com/edit/angular-ivy-4yczgp
component.html
<div class="statement-row"
*ngFor="let item of qblock.options;let j = index"
[ngClass]="{'wrong-answer': item.selectedIndex === j,'correct-answer':item.customIndex === j}">
<div class="statement-question">
<div class="qitem-text">
<div class="qitem-textbox">
<p>{{item.statement}}</p>
</div>
</div>
<div class="ccq">
<button class="qitem qclose"
(click)="item.selectedIndex=j">
<i class="qitembox qclose-icon"></i>
</button>
<button class="qitem qtick"
(click)="item.customIndex=j">
<i class="qitembox qtick-icon"></i>
</button>
</div>
</div>
</div>
您的问题是您对 ngClass 和 eacj 使用了多个不相关的条件,点击您使该条件正确。所以你使两个条件正确。这就是为什么你不能改变。
点击时需要再初始化一个
<button class="qitem qclose"
(click)="item.selectedIndex=j;item.customIndex=null">
<i class="qitembox qclose-icon"></i>
</button>
<button class="qitem qtick"
(click)="item.customIndex=j;item.selectedIndex=null">
<i class="qitembox qtick-icon"></i>
</button>
这是另一种方法。
- 您设置了项目的class。
- 如果
wrong-answer
将应用 class,如果 correct-answer
将应用 class。
- 您在各自的按钮上设置
item.class = 'wrong-answer' or item.class='correct-answer'
。
我是 angular 的初学者,我正在尝试解决无法在单击按钮时切换 class 的问题。 这是一个测验应用程序,在 true/false 问题格式中有 4 个语句和 2 个按钮来标记勾号或交叉,但可以使用一个活动的 class (真或假)。现在,我使用的逻辑不会在单击其他按钮时删除其他 class。任何帮助,将不胜感激。 工作堆栈闪电战演示: https://stackblitz.com/edit/angular-ivy-4yczgp
component.html
<div class="statement-row"
*ngFor="let item of qblock.options;let j = index"
[ngClass]="{'wrong-answer': item.selectedIndex === j,'correct-answer':item.customIndex === j}">
<div class="statement-question">
<div class="qitem-text">
<div class="qitem-textbox">
<p>{{item.statement}}</p>
</div>
</div>
<div class="ccq">
<button class="qitem qclose"
(click)="item.selectedIndex=j">
<i class="qitembox qclose-icon"></i>
</button>
<button class="qitem qtick"
(click)="item.customIndex=j">
<i class="qitembox qtick-icon"></i>
</button>
</div>
</div>
</div>
您的问题是您对 ngClass 和 eacj 使用了多个不相关的条件,点击您使该条件正确。所以你使两个条件正确。这就是为什么你不能改变。
点击时需要再初始化一个
<button class="qitem qclose"
(click)="item.selectedIndex=j;item.customIndex=null">
<i class="qitembox qclose-icon"></i>
</button>
<button class="qitem qtick"
(click)="item.customIndex=j;item.selectedIndex=null">
<i class="qitembox qtick-icon"></i>
</button>
这是另一种方法。
- 您设置了项目的class。
- 如果
wrong-answer
将应用 class,如果correct-answer
将应用 class。 - 您在各自的按钮上设置
item.class = 'wrong-answer' or item.class='correct-answer'
。