如何在angular 2中的1属性绑定中绑定2个变量?
我试图从json数据动态生成和使用表单控件。我提出了一个简单的实验,以找出我需要应用的机制,如下所示 类中定义的变量如何在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:''} 由于我在加载组件时动态创建它,因此没
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]]">