У меня есть список назначений в моем ответе JSON, который я использую для заполнения своего представления с помощью *ngFor="let assignment of assignmentFeed; let i = index;"
. Каждое назначение имеет свойство due_date
, которое я пропускаю через функцию с именем timeRemaining()
, чтобы получить оставшееся время для отправки назначения и показать эту информацию в представлении. Вот как эта часть выглядит в моем шаблоне:
<Label>
<FormattedString>
<Span *ngIf="timeRemaining(assignment?.due_date) === 0" class="fab clock-icon" style="color: #f16464;" text=" "></Span>
<Span *ngIf="timeRemaining(assignment?.due_date) !== 0" class="far clock-icon" text=" "></Span>
<Span *ngIf="timeRemaining(assignment?.due_date) === 0" class="remaining" style="color: #f16464;" text="Submission Closed"></Span>
<Span *ngIf="timeRemaining(assignment?.due_date) !== 0" class="remaining" [text]="timeRemaining(assignment?.due_date)"></Span>
</FormattedString>
</Label>
Это метод, который принимает обновленный крайний срок и обновляет массив assignmentFeed
:
updateDeadline(deadline, index){
const assignment = this.assignmentFeed[index];
assignment.due_date = deadline;
}
Проблема: Когда крайний срок обновляется для назначения, я выбираю assignment
в массиве assignmentFeed
, используя его индекс, и обновляю значение due_date. Однако в представлении отображаются как старое, так и новое значение оставшегося времени. Например, если оставшееся время составляло 1 день 5 часов, и я продлевал крайний срок на 3 часа, представление отображает что-то вроде 1 день 5 часов, оставшихся 1 день, 8 часов, оставшихся . Я должен удалить 1 день 5 часов, оставшихся и просто показать 1 день 8 часов, оставшихся .
Любая помощь?