我正在使用Ionic框架开发应用程序,到目前为止,我已经由* ngFor生成了输入,并且我想在单击按钮后获取每个输入的值。我已经尝试过Reactive表单,但无法使其正常工作。
<ion-list>
<ion-item *ngFor="let item of players; index as i">
<ion-chip>
<ion-input placeholder="Nombre jugador {{i+1}}" type="text"></ion-input>
<ion-icon name="person-add"></ion-icon>
</ion-chip>
</ion-item>
<br />
</ion-list>
和我的.ts文件。
ngOnInit() {
this.getJugadores();
}
getJugadores(){
this.storage.get("num_players").then(x =>{
if (x){
this.players = new Array(x);
}else{
console.log("error");
}
});
}
我想将每个值存储在对象数组中。
答案 0 :(得分:3)
使用Angular,将数据获取/设置到表单上的最简单方法之一就是简单地使用[(ngModel)]
数据绑定。
1)定义数据的结构。如果您有多个输入,请考虑定义一个数组。
2)使用[(ngModel)]
绑定到该结构。
以下一些信息可能会有所帮助:https://angular.io/guide/template-syntax#binding-syntax-an-overview
模板代码
<div *ngFor="let item of players; index as i">
<input placeholder="Nombre jugador {{i+1}}" type="text"
[(ngModel)]="item.name"/>
</div>
组件代码
players: Player[] = [];
ngOnInit() {
// Call a service to get data
// Hardcoded here as an example
this.players = [
{id: 1, name: "Joe"},
{id:2, name: "Stefan"}
]
}
接口代码
export interface Player {
id: number,
name: string
}
我在这里有一个工作示例:https://stackblitz.com/edit/angular-b5uppm