javascript - 动态添加/删除多个输入字段后不清除输入(文本)字段值
问题描述
我能够动态添加或删除多个输入字段,但问题是一旦我添加了项目并在输入字段中输入一些值并使用删除按钮将其删除,值没有被清除,我试图清空我的数组该索引也是如此,但它不起作用。请问有什么建议吗?
我感谢您的帮助!
这是我的html代码:
<div class="row">
<div>
<button mat-raised-button (click)="test()">Add </button>
</div>
<div *ngFor="let value of fieldArray; let i = index">
<mat-form-field >
<input matInput value="{{getDataValue(i)}}" (focusout)="onFocusOut($event)" name ="test">
</mat-form-field>
<button mat-raised-button class="btn btn-danger btn-sm " (click)="remove(i)">Delete</button>
</div>
</div>
我的 .ts 文件中的代码:
字段数组:数组 = [];
remove(i: number) {
this.fieldArray.splice(i,1);
}
test(){
this.fieldArray.push(this.fieldArray.length);
}
解决方案
使用 TrackBy,Angular 能够使用唯一标识符检测哪些项目被删除或添加到数组中。因此,只有添加或删除的项目必须在 DOM 中更新。
就像下面的代码查看:
<div *ngFor="let value of fieldArray; let i = index; trackBy: trackByFn">
下面是 .ts 文件的代码:
trackByFn(index, item) {
return index; // or item.id
}
推荐阅读
- javascript - 我使用 useState 飞节来存储值,但它没有更新
- in-app-purchase - Expo InAppPurchases 错误:必须连接到 App Store
- javascript - 有效地使用“滚动”监听器
- django - 向模型添加新对象返回“列表”对象没有属性“_committed”错误
- php - 将 db connection.php 与 db 查询分开
- angular - 下一个 BehaviorSubject - 它是在等待新值还是在合并当前值?
- css - 当我在网站上进行更改时 CSS 停止工作
- r - 根据下一行标记/分组数据集中的数据
- javascript - TypeError: jquery__WEBPACK_IMPORTED_MODULE_4__(...).slicebox 不是函数
- mysql - 在子查询中使用 SHOW CREATE TABLE