Mam kontrolkę kalendarza materiala, w której zmodyfikowałem, żeby w miejsce zaznaczonej komórki pojawiał się zaznaczony cały tydzień. Wszystko działa poprawnie, natomiast nie jestem w stanie ustawić, żeby w momencie załadowania html zaznaczał się aktualnie zaznaczony tydzień, który wcześniej został wybrany - tutaj wciąż pojawia się tylko zaznaczona komórka. Próbowałem wykorzystać event opened z dokumentacji Materiala (klik), ale zostaje on odpalony, jeszcze zanim załaduje się html.
Prosiłbym o pomoc: dodaję na stackblitz to, co udało mi się zrobić do tej pory: klik. Potrzebuję, żeby w momencie załadowania widoku uruchamiała się metoda setSelectedWeekBackground, która wybrany ostatnio tydzień powinna zaznaczyć na czerwono (przynajmniej w teorii, niestety nie miałem jak jej przetestować).
0
1
To może Ci pomóc: https://angular.io/guide/lifecycle-hooks
0
Pomogło:). Trzeba dodać hook AfterViewChecked, który pozwoli zaktualizować html.
ngAfterViewChecked(): void {
this.setSelectedWeekBackground();
}
setSelectedWeekBackground(): void {
const elem = (document.getElementsByClassName('mat-calendar-body-selected') as HTMLCollection)[0] as HTMLObjectElement;
if (elem) {
const closest = elem.closest('tr');
if (closest) {
closest.classList.add('selected-week');
}
}
}