Я использую угловой календарь отсюда 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;
день.дата не определена.
Я делаю что-то не так или это из компонента календаря, который я использую?