#angular
#angular
Вопрос:
У меня есть следующая структура DOM: Компонент приложения имеет
<app-form-component></app-form-component>
И компонент формы содержит следующий фрагмент html:
<form [formGroup]="registerForm" (ngSubmit)="onSubmit()">
......
</form>
<app-form-detail></app-form-detail>
Теперь для этого дочернего компонента detail app-form-detail
всякий раз, когда отправляется форма, она создает detail. В каждой детали есть edit
кнопка.
Можно отправлять данные из app-form-component
в app-form-detail
компонент. Теперь мне нужно отправить данные для заполнения формы, когда я нажимаю на кнопку редактирования из дочернего компонента.
Комментарии:
1. Я попробовал с помощью @Output event emitter, проблема здесь в том, что событие должно быть помещено внутри компонента формы как
<app-form-component (formEvent)="eventData($event)"></app-form-component>
которое не работает. Потому что это помещено в <app-component></app-component>
Ответ №1:
Да, это возможно. проверьте https://angular.io/guide/component-interaction для взаимодействия компонентов.
Внесите эти изменения, и это сработает ..!!
В form.component.html
<app-form-detail [formEvent]="formEventSubject.asObservable(data)" (formEmitEvent)="editedDetails($event)"></app-form-detail>
В form.component.ts
editedDetails(data){
console.log(data)
}
В форме-detail.component.ts
@Output() formEmitEvent = new EventEmitter<any>();
editForm(data) {
this.formService.setData(data);
this.formEmitEvent.emit(data)
}
Внесите желаемые изменения в метод editedDetails в form.component.ts для получения ожидаемого результата