#angular #typescript #binding
Вопрос:
У меня есть служба, которая принимает данные времени, представленные в виде массива (e.g. [2021, 09, 02, 08, 46] or [yyyy, mm, dd, hh, mm])
В моем компоненте следующее свойство хранит введенное выше время даты
public startTime : number[];
в моем шаблоне я хотел бы привязать этот массив к моим входным данным следующим образом:
<input type="datetime-local" [ngModel]="startTime" />
Есть ли чистый способ привязки startTime
, представляющий год/месяц/день/час/время в виде массива, к datetime-local
? Я не хочу делать кучу слепков или преобразований, если мне это не нужно.
Ответ №1:
Я думаю, что вам, вероятно, понадобится немного кастинга.
const startTime = new Date(...startTimeArray);
С Date
помощью предмета вы можете играть с ним так, как вам нравится:
<input type="datetime-local" [ngModel]="startTime | date:'yyyy-MM-ddTHH:mm'" (ngModelChange)="startTime = parseDateEvent($event)"/>
parseDateEvent(date: string) {
return !!date ? new Date(date) : null;
}