MatDatePicker начальный выбор - PullRequest
       1

MatDatePicker начальный выбор

0 голосов
/ 12 января 2020

Чтобы выбрать мою начальную дату, я использую метод select () из MatDatPicker. Вы должны знать, что код изменяет значение DatPicker каждый день в полночь с помощью setInterval, это изменение работает должным образом.

Если я помещаю свой метод select () в ngOnInit (), метод не может быть вызван, так как это происходит от ViewChild. Если я помещаю его в ngAfterViewInit (), у меня появляется эта ошибка:

ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'mat-form-field-should-float: false'. Current value: 'mat-form-field-should-float: true'.

Я пытался поместить его в ngAfterViewChecked (), но имел ошибку: TypeError: this.date.toDate is not a function

Единственное решение, которое я нашел, было использовать ngAfterViewInit () с setTimeout (), но мне это кажется уродливым.

У вас есть какое-нибудь лучшее решение?

Вот мой ViewChild: @ViewChild('datePicker', { static: false }) datePicker: MatDatepicker<any>;

Вот мой DatePicker:

<mat-form-field>
        <input matInput [matDatepicker]="datePicker" placeholder="Choisissez une date" [(ngModel)]="date" disabled />
        <mat-datepicker-toggle matSuffix [for]="datePicker"></mat-datepicker-toggle>
        <mat-datepicker #datePicker disabled="false"></mat-datepicker>
      </mat-form-field>

Вот ngAfterViewInit:

ngAfterViewInit() {
    setTimeout(() => this.datePicker.select(this.date.toDate()));
  }

this.date определяется как описано ниже: date = moment(); `

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