Базовый компонент ввода создается на лету
const compTag = 'my-input';
const template = `<${compTag}></${compTag}>`;
my-input
- это вход, который реализует ControlValueAccessor
и может быть назначен с помощью директивы formControlName
.
поэтому, передав ему formControlName=${config.name}
:
const template = `<${compTag} formControlName="${config.name}"></${compTag}>`;
в моем компоненте «на лету», передается следующее, чтобы элемент управления нашел его родителя:
viewProviders: [{
provide: ControlContainer,
useExisting: FormGroupDirectiv
}],
Verbose:
const tmpCmp = Component({
template,
viewProviders: [{
provide: ControlContainer,
useExisting: FormGroupDirective
}],
})(class {});
, который позже разрешается в DOM как:
<ng-component>
<my-input formcontrolname="a" ng-reflect-name="a" class="ng-untouched ng-pristine ng-valid">
<input/>
</my-input>
</ng-component>
Проблема заключается в том, что я пытаюсь передать любые данные конфигурации объекта дочернему компоненту в шаблоне:
const template = `<${compTag} formControlName="${config.name}" config=${config}></${compTag}>`;
config
передается компоненту, но не анализируется должным образом и принимается как config: [Object object]
. Кто-нибудь сталкивался?