我有一个组件:
示例:
selectedData = { Label:"test", IsUsed:false}
fields = [{name:'label', type:'string'},{name:'IsUsed, type:'boolean'}
我正在尝试生成一个用于编辑“selectedData'
”内部数据的表单以下是我观点的一部分:
<div class="ui-grid-row" *ngFor="let myField of fields" >
<div class="ui-grid-col-4"><label for="{{myField.name}}">{{myField.name}}</label></div>
<div class="ui-grid-col-8"><input pInputText id="{{myField.name}}" [(ngModel)]="this['selectedData.' + myField.name]" /></div>
</div>
问题在于这一行
[(ngModel)]="this['selectedData.' + myField.name]"
它无法正常工作。 以下是我编辑时的组件的Google Chrome手表:
正如您所看到的,Angular2创建了一个名为&#34; selectedData.Label&#34;的对象。而不是使用selectedData现有对象。
有解决方案吗?或者我应该采取不同的方式吗?
THX
答案 0 :(得分:6)
答案很简单:
[(ngModel)]="selectedData[myField.name]"
如果field.Name的值为'label',则前面的代码等效为:
[(ngModel)]="selectedData.label"
我不知道'[]'可以这样使用。