Как я могу преобразовать извлеченные числа как Длительность (JODA. js) в правильную форму Длительности из JSON? - PullRequest
0 голосов
/ 04 мая 2020

Существует следующая проблема:

Когда я получаю данные из моего бэкэнда, длительность не будет правильно выбрана. Он будет инициализирован как число в секундах.


export class Booking {
    id: number;
    projectId: number;
    userId: number;
    bookedTime: Duration;
    workDate: LocalDate;
    description: string;
}

Когда я получу ответ, все будет правильно, кроме Длительности.

В настоящее время я делаю это, чтобы преобразовать значение после того, как я его выбрал, и это единственный способ заставить это работать:


this.timeTrackingService.findByProjectDateBetween(projectId, LocalDate.of(2020, 3, 1), LocalDate.of(2020, 3, 31))
            .subscribe((bookings: Booking[]) => {
                bookings.forEach(booking => {
                    booking.bookedTime = Duration.ofSeconds(Number(booking.bookedTime));
             });

Но я хочу иметь правильно сериализованную Duration без этого ,

Вот что я попробовал:


export class Booking {
    private _bookedTime: Duration;
    id: number;
    projectId: number;
    userId: number;

    workDate: LocalDate;
    description: string;

    set bookedTime(value:Duration){
       this._bookedTime = Duration.ofSeconds(Number(value));
    }

    get bookedTime(): Duration{
       if(isNumber(this._bookedTime)) 
             this._bookedTime = Duration.ofSeconds(Number(this._bookedTime));
       return this._bookedTime;
    }

}

Но все равно будет ошибка "booking.bookedTime.toHours()" is not a function

За исключением того, что я преобразую это вручную.

У вас есть решение для подсказки по этой проблеме?

...