Привязать массив к » дата-время-локальному`?

#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;
}