在我的代码中,如果我点击add_box
图标,它会在下面添加另一个输入表单,以便我可以输入更多值,但这是此链接中显示的问题http://g.recordit.co/R0iifhd6Wd.gif
这是我的代码
instrumentsData = {
particulars: ''
}
addParticular() {
this.particulars.push('');
}
<div class="form-group">
<button (click)="addParticular()" class="button-box"><i class="material-icons">add_box</i></button>
<ul class="form-fields" *ngFor="let particular of particulars">
<li>
<input type="text" name="name" [(ngModel)]="instrumentsData.particular">
</li>
</ul>
</div>
答案 0 :(得分:0)
如果特定是一个数组,那么你可以像
那样做<div class="form-group">
<button (click)="addParticular()" class="button-box"><i class="material-icons">add_box</i></button>
<ul class="form-fields" *ngFor="let particular of particulars; let i= index">
<li>
<input type="text" name="name" [(ngModel)]="instrumentsData.particular[i]">
</li>
</ul>
</div>
答案 1 :(得分:0)
您遇到此问题的原因是您始终在ngModel instrumentsData.particular中绑定1个值
您可以通过以下方式解决问题:
HTML:
<div class="form-group">
<button (click)="addParticular()" class="button-box"><i class="material-icons">add_box</i></button>
<ul class="form-fields" *ngFor="let particular of particulars; index as i;trackBy: trackByFn">
<li>
<input type="text" name="name" [(ngModel)]="particulars[i]">
</li>
</ul>
</div>
Component.ts:
...
particulars: any[] = [];
addParticular() {
this.particulars.push('');
}
trackByFn(index, item) {
return index;
}
...
这是你的傻瓜: https://plnkr.co/edit/98mLfBla5KQqx4hpNne2?p=preview
或者它可能是另一个数组,那么你在* ngFor
中不需要trackBy