Заполните значение ввода временем, выбранным на Clockpicker в Angular 14

Я использую clockpicker, чтобы заставить пользователя выбрать время, которое он хочет, однако, я пытаюсь через пару дней выяснить, как получить значение выбранного времени и присвоить его соответствующему входному значению, но тщетно.

Итак, вот html-код. Там я также использую ngModel для отправки значения в файл .ts.

       <div>
    <mat-form-field appearance="outline">
      <mat-label>Select the start time</mat-label>
      <input
        appClockPicker
        #clockpicker="clockpicker"
        matInput
        placeholder="..."
        type="text"
        [(ngModel)]="selectedHours[0]"
      />
    </mat-form-field>
  </div>

Тогда это директива для отображения часов, но я не очень понимаю, как это работает, так как я новичок, и я копировал его откуда-то из Интернета. Так что думаю ошибка оттуда.

      import {
  AfterViewInit,
  Directive,
  ElementRef,
  NgZone,

} from "@angular/core";
declare var $: any;
declare var jQuery: any;

@Directive({
  selector: "[appClockPicker]",
  exportAs: "clockpicker",
})
export class ClockPickerDirective implements AfterViewInit {
  myDate: any;
  constructor(private el: ElementRef, private ngZone: NgZone) {}

  ngAfterViewInit(): void {
      this.ngZone.runOutsideAngular(() => {
        $(this.el.nativeElement).clockpicker({
          placement: '',
          align: "left",
          donetext: "Valider",
          onselect: (data:any) => {
            console.log(`data: ${data}`);
            
            this.ngZone.run((date) => {
              this.setTime(date);
              console.log(`date: ${date}`);
            });
          },
        })});
    
    ;}

  setTime(date) {
    this.myDate = date;
  }
}

Наконец, вот как это выглядит: выбранное время правильно отображается в поле ввода, хотя здесь введите описание изображения.

0 ответов

Другие вопросы по тегам