У меня есть пара для родительских компонентов, использующих Форма на основе шаблона :
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 } ]
})
Является ли моя концепция совершенно неверной? Я просто реализую это неправильно?