Я использую Angle Material 2 mat-datepicker
и хочу, чтобы элемент ввода был отключен, поэтому пользователь не может редактировать значение с помощью ввода текста.
В документах Angular Material 2 есть подробные инструкции о том, как отключить разные части mat-datepicker
однако они, похоже, не охватывают, как отключить ввод текста, когда он является частью реактивной формы.
Документы "Угловой материал" предлагают отключить ввод текста следующим образом:
<mat-form-field>
// Add the disabled attribute to the input element ======
<input disabled
matInput
[matDatepicker]="dateJoined"
placeholder="Date joined"
formControlName="dateJoined">
<mat-datepicker-toggle matSuffix [for]="dateJoined"></mat-datepicker-toggle>
// Add [disabled]=false to the mat-datepicker =======
<mat-datepicker [disabled]="false"
startView="year"
#dateJoined></mat-datepicker>
</mat-form-field>
Однако, если ваш фидпик является частью реактивной формы, текстовый элемент остается активным, и вы получаете следующее сообщение от Angular:
Похоже, вы используете отключенный атрибут с директивой реактивной формы. Если вы установите для параметра disabled значение true при настройке этого элемента управления в своем классе компонентов, атрибут disabled будет фактически установлен в DOM для вас. Мы рекомендуем использовать этот подход, чтобы избежать ошибок "изменено после проверки". Пример: form = new FormGroup ({first: new FormControl ({значение: 'Nancy', disabled: true})};
Я обновил FormGroup
в компоненте, чтобы отключить FormControl
, который имеет желаемый эффект от отключения ввода, однако, если вы затем получите значение FormGroup
используя this.form.value
отключенный элемент управления формы больше не присутствует.
Есть ли работа для этого, которая не предполагает наличия отдельной формы с ngModel
использующей ngModel
только для mat-datepicker (s)?