【发布时间】:2019-05-14 05:04:30
【问题描述】:
我正在尝试开发一个角度应用程序。我使用数组中的 ngFor 动态生成输入 html 元素,并且我将元素的 ID 提供为 inputElem_{{index}}。如果我试图删除倒数第二个元素并添加新元素,我将得到两个输入框中给出的具有相同名称和值的两个元素被清空并在 ui 中显示为无效
<i class="fa fa-add" (click)="addElem()"></i>
<div class="row" *ngFor="let elemName of elemList; let index=index;">
<div class="col-md-8">
<input id="inputElem_{{index}}" name="inputElem_{{index}}" required
[(ngModel)]="elemName.name"/>
</div>
<div class="col-md-2">
<i class="fa fa-delete" (click)="deleteElem(index)"></i>
</div>
</div>
deleteElem(index: number) {
this.elemList.splice(index, 1);
}
addElem() {
const elem = new Elem();
this.elemList.push(elem);
}
【问题讨论】:
-
当您想创建动态输入表单输入时,您可以使用 Reactive Form 来创建它,即使用 FormGroup 和 FormArray 通过使用它不会出错
-
您能否提供一个 Stackblitz 示例并更具体地解释您想要实现的目标?您是想让 HTML 元素 id 等于对象索引还是相反?
-
@ravi 更改为响应式表单将占用大量时间,因为应用程序很大,而且我在每个角落都使用这种方法。请在不改变这种方法的情况下帮助我解决问题
-
@Jojofoulk stackblitz.com/edit/…