如何在angular 2中的1属性绑定中绑定2个变量?

如何在angular 2中的1属性绑定中绑定2个变量?,angular,angular2-databinding,Angular,Angular2 Databinding,我试图从json数据动态生成和使用表单控件。我提出了一个简单的实验,以找出我需要应用的机制,如下所示 类中定义的变量 demoA: string = 'name'; demoB: Array<string> = ['city', 'state']; demoC: FormGroup = new FormGroup({}); 现在demoC的值为 demoC: {name:'', city:'', state:''} 由于我在加载组件时动态创建它,因此没

我试图从json数据动态生成和使用表单控件。我提出了一个简单的实验,以找出我需要应用的机制,如下所示

类中定义的变量

demoA: string         = 'name';
demoB: Array<string>  = ['city', 'state'];
demoC: FormGroup      = new FormGroup({});
现在
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
我该怎么做?

为什么
{{}
语法?您可以使用
[(ngModel)]=demoC[demoA]
这个动态属性的语法进行绑定。但这里混合了两种方法,一种是方法,另一种是方法。如果您想使用
FormGroup
我认为最好使用
FormControlName
指令,而不是
ngModel
。或者,如果你想使用
ngModel
我想你不需要使用
FormGroup

最终,我只是想尝试一种成功的方法,将角度表单应用到我制作的问卷组件中,你可以看到这里的一个示例。我在角度表单上看到的一切都是关于工作的,这对我来说是一个挑战使用硬编码形式并从那里进行迭代。如果你看看我的plunkr是如何工作的,并且根据用户选择的答案有多个可选的问题层,你就会明白为什么我希望能够动态地创建它,而不是试图定义一个巨大的东西……可能只完成60%,因为永远不会有一种情况下所有的问题适用于用户,因为这基本上是我引导他们走上他们需要遵循的道路,让我以适合他们的方式帮助他们。因此,我只是想找出哪一个是收集他们回答的有效方法。根据我的逻辑,有很多“非表单”数据需要与“表单数据”一起传递,如果这有意义的话。
<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]]">