Как передать ngModel от ребенка к родителям (от ребенка к родителю к родителю)? - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть пара для родительских компонентов, использующих Форма на основе шаблона :

user-data.components.ts
admin-data.components.ts
customer-data.components.ts

Элементы формы в этих компонентах являются дочерними компонентами, использующими NG_VALUE_ACCESSOR:

app-input.component.ts

, который связывается с каждым из родителей, например:

<app-input name="xxxx" [(ngModel)]="yyyy" ....></app-input>

С другой стороны, в каждом из этих родительских компонентов есть некоторые поля по умолчанию, например firstName и lastName

Поэтому для полей по умолчанию я хочу создать дополнительный компонент: default-fields.component.ts с firstName и lastName:

<app-input name="firstName" [(ngModel)]="yyyy" ....></app-input>

<app-input name="lastName" [(ngModel)]="yyyy" ....></app-input>

добавить его один раз в родителей.

Моя проблема в том, что я могу передать ngModel с app-input.component.ts на default-fields.component.ts, но не на один уровень глубже. Например, для user-data.components.ts

В default-fields.component.ts я использую viewProviders: [], например:

@Component({ selector: ....., templateUrl: ....., viewProviders: [ { provide: ControlContainer, useExisting: NgForm } ] })

Является ли моя концепция совершенно неверной? Я просто реализую это неправильно?

1 Ответ

0 голосов
/ 11 февраля 2020

Самый простой способ - создать службу с BehaviorSubject и передать данные с помощью next (). Тогда просто нужно подписаться на нее

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