Атрибут dateClass срабатывает только один раз в угловом материале matCalendar - PullRequest
0 голосов
/ 09 мая 2019

Я хочу выделить даты в matCalendar, но после отображения календаря даты, которые я передаю в значение [dateClass], не изменяются.

Я заметил, что если я нажму назад, чтобы перейти к предыдущему месяцу, значения обновятся

 <mat-calendar [dateClass]="dateClass()" #calendar (selectedChange)="getDayRequestsList($event)">
                </mat-calendar>
dateClass() {
    return (date: Date): MatCalendarCellCssClasses => {
      const highlightDate = this.datesToHighlight
        .map(strDate => new Date(strDate))
        .some(d => d.getDate() === date.getDate() && d.getMonth() === date.getMonth() && d.getFullYear() === date.getFullYear());
      console.log(this.calendar);
      return highlightDate ? 'highlight-date-class' : '';
    };
  }

 getAllActivityList() {
    this.calendarService.getAllCalendarDaysActivities().subscribe(activities => {
      console.log(activities);
      this.allActivities = activities; // assign all activities to the class property
      this.selectedDayActivities = this.allActivities.filter(activity =>
        new Date(activity.startEPOCHDate * 1000).toLocaleDateString() === this.selectedDate.toLocaleDateString());

      this.datesToHighlight = []; // 1
      this.allActivities.forEach(activity => { // 2
        const _dateObj = new Date((activity.startEPOCHDate * 1000)); // convert back to date object
        console.log(_dateObj);
        // let _date = _dateObj.toISOString().substring(0, 10); // convert to date
        this.datesToHighlight.push(_dateObj.toLocaleString());
      });

    });
  }


Я ожидал, что даты из службы будут обновляться в календаре, но это не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...