Angular: Справка по редактируемой форме на месте
Я пытаюсь создать редактируемую форму на месте, чьи элементы управления должны переключаться между редактируемым режимом и режимом только для просмотра при нажатии кнопки снаружи (я не хочу, чтобы отдельные элементы управления нажимались для переключения режима редактирования),
Я создал этот StackBlitz, где я получаю сообщение об ошибке: No provider for NgControl
, Я не хочу наматывать элементы формы на каждый из редактируемых компонентов управления, которые я хочу создать. Пожалуйста, помогите мне с этим.
Мой предполагаемый контроль - что-то вроде<editable-control [mode]="formMode" type="text"></editable-control>
1 ответ
Ваш пользовательский компонент формы реализует ControlValueAccessor
интерфейс, поэтому он нуждается в NgControl
поставщик. Вы должны использовать ReactiveFormsModule
вместо FormsModule
,
Таким образом, вы должны импортировать его из @angular/forms
и добавьте его в массив импорта соответствующего NgModule:
// ...
import { ReactiveFormsModule } from '@angular/forms';
@NgModule({
imports: [
// ...
ReactiveFormsModule
]
})
// ...
Чтобы использовать свой пользовательский компонент, вы можете использовать его вместе с formGroup
директивы. Например:
<form [formGroup]="myForm">
<editable-control [mode]="formMode" type="text" formControlName="myText">
</editable-control>
</form>