#angular
#angular
Вопрос:
У меня проблемы с компонентом datepicker. Я использую его дважды. Когда я выбираю дату в первом datepicker и выбираю дату, равную или более позднюю, чем дата во втором компоненте, во втором компоненте дата должна быть установлена на неделю позже.
Как я это делаю: шаблон
<datepicker
[(ngModel)]="item.updated"
[expanded]="true"
[viewFormat]="'DD/MM/YYYY'"
(closed)='compareDates(item)'
></datepicker>
<datepicker
[(ngModel)]="item.date_end"
[expanded]="true"
[viewFormat]="'DD/MM/YYYY'"
(closed)='compareDates(item)'
></datepicker>
compareDates — функция, где я сравниваю даты)
закрытый пользовательский метод, который я добавляю в компонент datepicker
close() {
this.opened = false;
this.closed.emit();
}
при изменении item.date_end во втором компоненте дата не выбирается в календаре
Я пытаюсь повторно запустить второй компонент вручную
<datepicker
#datepick
(click)="clicked(datepick, item)" <-- this
[(ngModel)]="item.date_end"
[expanded]="true"
[viewFormat]="'DD/MM/YYYY'"
(closed)='compareDates(item)'
></datepicker>
функция «щелкнула»:
clicked(el:DatePickerComponent, item: any){
el.ngOnChanges();
}
В datepicker я меняю OnInit на onChanges
Если я вызываю метод click во втором компоненте datepicker, это работает, но если я вызываю метод «click» в любом другом div, «el» — не определено. Мне нужна помощь
обновлено:
compareDates(item:any){
let startDate = new Date(item.updated).setHours(0,0,0,0);
let endDate = new Date(item.date_end).setHours(0,0,0,0);
let currentDate = new Date().setHours(0,0,0,0);
if (startDate < currentDate){
item.updated = new Date(currentDate);
}
if (endDate amp;amp; startDate >= endDate){
let newDate = new Date(startDate);
newDate.setDate(newDate.getDate() 7);
item.date_end = this.getDate(newDate);
}
}
p.s. извините за мой английский 🙂
Комментарии:
1. Можете ли вы добавить реализацию вашей функции compareDates
2. Я обновляю вопрос