【发布时间】:2017-12-01 00:19:44
【问题描述】:
我正在使用反应形式, 我有 2 个问题: 我想使用一个字符串数组作为用户可以直接更改的输入,我有一个这样的数据模型
export class Work {
toDos: string[];
}
Q1:是否可以将输入直接绑定到基元数组,还是应该在具有属性名称的对象数组中转换为 Dos,并始终使用控件?
第二季度: 我尝试了几个想法,但我找不到一个简单的方法让它工作:
<div *ngFor="let item of toDos;let index = index;trackBy:trackByIndex;">
<input [(ngModel)]="toDos[index]" placeholder="item" name="word{{index}}">
</div>
<button (click)="addItem()" type="button">Add an
Item</button>
<div *ngFor="let item of toDos">
<label>{{item}}</label>
</div>
在component.ts中
toDos: string[] =["Todo1","Todo2","Todo3"];
trackByIndex(index: number, obj: any): any {
return index;
}
addItem() {
this.toDos.push('0');
}
添加功能正常,但输入未绑定,我没有收到任何错误, 我可以更改输入的值,但它不会反映在 {{item}}
【问题讨论】:
-
我发现它为什么不工作,它不工作,因为它在一个 我真的不知道为什么。现在可以了,谢谢,我仍然很想知道始终使用对象数组而不是基元数组是否是最佳实践,以及在输入中使用带有 formControlName 而不是 ngModel 的控制器是否更好