У меня есть этот массив объектов, который содержит кучу комментариев:
comments: Comment[];
И этот массив заполняется внутри функции ngOnInit()
путем вызова сервисного кода. Позже, в моем массиве comments
есть ключ, равный commentPlus
среди других ключей. Это значение представляет общее количество голосов за комментарий. Я использую его значение внутри моего html следующим образом:
<div class="media mb-3" *ngFor="let comment of comments; trackBy: trackByFn">...
<a class="btn btn-success" (click)="upVote()" [ngClass]="{'active' : comment.voted > 0 }"><i class="fa fa-thumbs-up"></i> {{comment.commentPlus}}</a>
Я хочу обновлять значение {{comment.commentPlus}}
и стиль кнопки всякий раз, когда пользователь нажимает кнопку. Ниже приведен код для upVote()
function
upVote(commentId: number, userId: number){
userId = this.userId;
commentId = 4; //I just assigned some number that I know it exists in my database for testing.
this.service.upVote(commentId, userId).subscribe();
}
Но проблема в том, что ни изменение стиля, которое должно быть выполнено с помощью [ngClass]="{'active' : comment.voted > 0 }"
, ни новое значение для {{comment.commentPlus}}
не отражаются во внешнем интерфейсе. Серверная часть работает так, как и должно быть, но эти два изменения требуют обновления страницы.
export class Yorum {
commentId?: number;
userId?: number;
comment?: string;
commentPlus?: number;
commentMinus?: number;
voted?: number;
}