Выбор даты с настраиваемым верхним и нижним колонтитулом из материала angular - PullRequest
1 голос
/ 01 мая 2020

Я новичок в angular дизайне материалов, я хочу отобразить средство выбора даты с верхним и нижним колонтитулами

ниже указан мой код TS,

import {
  ChangeDetectionStrategy,
  ChangeDetectorRef,
  Component,
  Inject,
  OnDestroy
} from '@angular/core';
import {MatCalendar} from '@angular/material/datepicker';
import {DateAdapter, MAT_DATE_FORMATS, MatDateFormats} from '@angular/material/core';
import {Subject} from 'rxjs';
import {takeUntil} from 'rxjs/operators';

@Component({
  selector: 'datepicker-custom-header-example',
  templateUrl: 'datepicker-custom-header-example.html',
  changeDetection: ChangeDetectionStrategy.OnPush,
})
export class DatepickerCustomHeaderExample {
  exampleHeader = ExampleHeader;
}

@Component({
  selector: 'example-header',
  styles: [`
    .example-header {
      display: flex;
      align-items: center;
      padding: 0.5em;
    }

    .example-header-label {
      flex: 1;
      height: 1em;
      font-weight: 500;
      text-align: center;
    }

    .example-double-arrow .mat-icon {
      margin: -22%;
    }
  `],
  template: `
    <div class="example-header">
     <span class="example-header-label">{{selectedDate  |date:'dd'}}</span>
     <span class="example-header-label">{{selectedDate  |date:'MMM'}}</span>
      <span class="example-header-label">{{selectedDate  |date:'yyyy'}}</span>
    </div>
  `,
  changeDetection: ChangeDetectionStrategy.OnPush,
})
export class ExampleHeader<D> implements OnDestroy {
  private _destroyed = new Subject<void>();

  constructor(
      private _calendar: MatCalendar<D>, private _dateAdapter: DateAdapter<D>,
      @Inject(MAT_DATE_FORMATS) private _dateFormats: MatDateFormats, cdr: ChangeDetectorRef) {
    _calendar.stateChanges
        .pipe(takeUntil(this._destroyed))
        .subscribe(() => cdr.markForCheck());
  }

  ngOnDestroy() {
    this._destroyed.next();
    this._destroyed.complete();
  }

  get periodLabel() {
    return this._dateAdapter
        .format(this._calendar.activeDate, this._dateFormats.display.monthYearLabel)
        .toLocaleUpperCase();
  }
    get selectedDate() {
    return this._dateAdapter
        .format(this._calendar.activeDate, this._dateFormats.display.dateInput)
        .toLocaleUpperCase();
  }
}

HTMLcode

<mat-form-field>
  <mat-label>Custom calendar header</mat-label>
  <input matInput [matDatepicker]="picker">
  <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
  <mat-datepicker #picker [calendarHeaderComponent]="exampleHeader"></mat-datepicker>

</mat-form-field>

Я прикрепил вывод текущего кода ниже

enter image description here

Я хочу отобразить сообщение в нижнем колонтитуле как «Нажмите кнопку Сохранить, чтобы сохранить изменения» и ниже к сообщению я хочу добавить 2 кнопки Сохранить и Отменить.

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