我正在尝试将条件类添加到div
,而到目前为止,如果我点击某个特定按钮,它会根据条件(这很好)将类添加到它中,但是,当我点击同一页面上的另一个按钮(具有相同条件),该类从第一个删除并分配给第二个。
想要的行为:
单击某个按钮,然后单击另一个按钮时,它不应该从第一个按钮中删除该类。就像在Facebook上一样(点击帖子的like
按钮,然后你可以转到另一个帖子并点击like
按钮等。)
HTML
<div class="agreeBtn" (click)="like(review.objectId)" [ngClass]="{'agreeBtnClicked': updateBtnWithId === review.objectId && clicked}">I agree</div>
.TS
like(objId){
this.updateBtnWithId = objId;
if(this.updateBtnWithId === objId){
this.clicked = true;
}
}
答案 0 :(得分:0)
你需要重温你的逻辑。
发生这种情况是因为您的所有按钮都有一个共同的布尔变量clicked
和一个公共ID updateBtnWithId
。这意味着一次只能设置一个帖子。
您需要一组变量来跟踪列表中的按钮:clicked[]
。
或者,对于您的示例,在设置该类的帖子列表中的每个liked
对象中都有一个review
属性。
例如:
<div class="agreeBtn" (click)="like(review)" [ngClass]="{'agreeBtnClicked': review.liked}">I agree</div>
在课堂上
like(obj){
obj.liked=true;
//this.updateBtnWithId = objId;
/* if(this.updateBtnWithId === objId){
this.clicked = true;
}*/
}