Угловой календарь MonthViewDay отправляет «день» не определено - PullRequest
0 голосов
/ 05 ноября 2018

Я использую угловой календарь отсюда https://github.com/mattlewis92/angular-calendar#getting-started.

Когда я нажимаю на день, я хочу, чтобы он был сохранен в моей базе данных. Я сделал обе части, BE & FE, но у меня есть проблема с этим конкретным компонентом.

Вот мой код:

month-calendar.component.ts (дочерний компонент)

export class MonthCalendarComponent implements OnInit {
  @ViewChild('modalContent') modalContent: TemplateRef<any>;

  view = 'month';
  @Input() holidayClicked: Function;

  dayClicked(day: CalendarMonthViewDay): void {
    const sub = this.holidayClicked(day);
    console.log(sub);
    sub.subscribe(isHoliday => {
      if (isHoliday) {
        delete day.cssClass;
      } else {
        day.cssClass = 'cal-day-selected';
      }
    });
  }

calendar-component.ts (родительский компонент)

@Component({
  selector: 'ca-calendar',
  templateUrl: './calendar.component.html',
  styleUrls: ['./calendar.component.css']

})

export class CalendarComponent implements OnInit {
  @ViewChildren(MonthCalendarComponent) months: any[];

 holidayClicked = function (day: CalendarMonthViewDay): Observable<boolean> {
    const username = 'dinchmle';
    const holiday = new Holiday();
    holiday.date = day.date;
    holiday.stateVal = this.stateSelected;
    holiday.comment = '';

    return this.calendarService.updateEmployee(username, holiday).map(
      response => {
        if (holiday && holiday.stateVal !== 1) {
          return true;
        } else {
          return false;
        }

      });
  };

holiday.ts

import { eState } from './eState';

export class Holiday {

    date: Date;
    stateVal: eState;
    comment: string;
    isSelected: boolean;
    constructor() {

    }
}

... и calendar.service.ts

  updateEmployee(userName: string, holiday: Holiday): Observable<Holiday> {
    const url = this._employeeUrl + '/holiday?userName=' + userName;
    return this.http.put(url, holiday)
    .map((res: Holiday) => res)
    .catch(this.handleError);
  }

проблема здесь

holiday.date = day.date;

день.дата не определена.

Я делаю что-то не так или это из компонента календаря, который я использую?

...