2016-12-17 437 views
6

如何在ngModel中使用动态变量?Angular 2 - ngModel中的动态变量

我尝试使用下面的代码,但出现以下错误:

<div *ngFor="let num of ['1','2','3']; let i=index"> 
    <input id="qtd{{num}}" [(ngModel)]="qtd{{num}}" type="text"/> 
</div> 

埃罗

Unhandled Promise rejection: Template parse errors: Parser Error: Got interpolation ({{}})

+1

使用数组,并使用'qtd [num]'。 –

+0

你能举个例子吗? – rafaelcb21

回答

14

定义的组件阵列,并保持它推。

export class AppComponent { 
    qtd:any[] = {}; 
} 

然后,更新您的模板一样

<div *ngFor="let num of ['1','2','3']; let i=index"> 
    <input id="qtd{{num}}" [(ngModel)]="qtd[num]" type="text"/> 
</div> 

{{ qtd | json}} 

在这所有的动态模型将在QTD阵列

Plunker

希望帮助!

+0

它工作得很好!谢谢!我一直在寻找正确的答案几个小时!谢谢! :) –

7

比方说,你有以下组件

export class AppComponent { 
    qtd1 = 'qtd1'; 
    qtd2 = 'qtd2'; 
    qtd3 = 'qtd3'; 
} 

,那么你的模板可能看起来像:

<div *ngFor="let num of ['1','2','3']; let i=index"> 
    <input id="qtd{{num}}" [(ngModel)]="this['qtd' + num]" type="text"/> 
</div> 

Plunker Example