Ошибка при обновлении представления об изменении значения с помощью функции - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть список назначений в моем ответе 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="&#xf071;&nbsp;&nbsp;"></Span>
    <Span *ngIf="timeRemaining(assignment?.due_date) !== 0" class="far clock-icon" text="&#xf017;&nbsp;&nbsp;"></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 часов, оставшихся .

Любая помощь?

...