动态创建基本输入组件
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
}],
详细:
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]
有没有人偶然发现?