我正在尝试从我的 json 数据动态生成和使用表单控件。我想出一个简单的实验来弄清楚我需要应用的机制如下。
类中定义的变量
demoA: string = 'name';
demoB: Array<string> = ['city', 'state'];
demoC: FormGroup = new FormGroup({});
demoA
用于从and中获取属性demoB
并转换为FomControl
s 的函数
loadStuff(){
let a = this.demoA;
let b = this.demoB;
let ab: Array<string> = [];
ab.push(a);
b.forEach( bb => {ab.push(bb)} );
console.log(ab);
ab.forEach( ctrl => this.demoC.addControl(ctrl, new FormControl('')) );
console.log( this.demoC.value );
}
现在的demoC
值为
demoC: {name:'', city:'', state:''}
由于我在加载组件时动态创建它,因此我没有预定义的方式来绑定它,这让我想知道我是否可以在输入的绑定中绑定它,就像这样
<input type="text" [(ngModel)]="demoC.{{demoA}}" />
当然这没有用,也没有
<input type="text" [(ngModel)]="demoC.[demoA]" />
<input type="text" [(ngModel)]="demoC.[(demoA)]" />
<input type="text" [(ngModel)]="demoC.(demoA)" />
<input type="text" [(ngModel)]="(demoC)+'.'+(demoA)" />
<input type="text" [(ngModel)]="[(demoC)+'.'+{{demoA}}]" />
<input type="text" [(ngModel)]="('demoC.'+{{demoA}})" />
<input type="text" [(ngModel)]="['demoC.'+{{demoA}}]" />
<input type="text" [(ngModel)]="['demoC.'+[demoA]]" />
<input type="text" [(ngModel)]="[('demoC.')+[demoA]]">
如果我希望结果是demoC.name
我该怎么做?