angular - Angular 5 ngModel ngFor 不使用 trackBy
问题描述
这是我的html
<div class="card">
<div class="card-body" *ngFor="let bookInstance of bookInstanceList; trackBy: trackByBookList;">
<label for="status">Status</label>
<input type="text" class="form-control" id="status" placeholder="Status of the book" [(ngModel)]="bookInstance.status" name="status" required>
</div>
</div>
这是我的打字稿
private bookInstanceList = [
{
"status": "Not Available",
},
{
"status": "I am Available",
}
];
trackByBookList(index: number, bookInstance: any): any {
return index;
}
我在 trackBy 上关注了许多教程,但我仍然无法让第一个输入的输入字段为“不可用”,而第二个输入字段为“可用”。我认为这是因为我使用了输入标签?我正在使用角度 5
解决方案
在标签中使用input
字段时,请form
确保每个字段都具有唯一name
性(一组单选按钮除外,其中单选输入元素共享相同的名称):
<div *ngFor="let bookInstance of bookInstanceList; let i=index; trackBy: trackByBookList;">
<label>Status
<input type="text" [name]="'status_' + i" [(ngModel)]="bookInstance.status" ...>
</label>
</div>
您也可以考虑删除该id
属性。每个都id
应该是唯一的,而原始代码中并非如此。
推荐阅读
- javascript - 设置页面加载时音频对象的当前时间
- java - 在春季获取 org.springframework.orm.ObjectOptimisticLockingFailureException
- python - 以任意顺序对查询集进行排序
- git - 子模块中的最后一次提交 ID,使其成为父提交
- go - 当使用 gob 通过网络对结构进行序列化时,为什么我们需要 Register() 任何作为传输结构内部接口的字段?
- ruby - 浏览器不显示最新更改(Sinatra、Ruby、ATOM)
- c - C: sys/queue.h - 如何将指向 TAILQ_HEAD() 的指针传递给函数,而不是让 TAILQ_HEAD() 成为全局的?
- python - 带有适当列表的 Python 匹配列表
- git - 作曲家:“存储库类型未注册:git”
- linux - 在 Linux 内核 4+ 中查找和更改伙伴分配器使用的位图