【问题标题】:Get value from ng for generated inputs从 ng 获取生成的输入的值
【发布时间】:2019-02-20 22:51:10
【问题描述】:

我正在使用 Ionic 框架做一个应用程序,到目前为止,我有 *ngFor 生成的输入,我想在单击按钮后获取每个输入的值。我尝试过使用响应式表单,但无法使其正常工作。

<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");
    }
  });
}

我想将每个值存储在一个对象数组中。

【问题讨论】:

    标签: angular ngfor ionic4


    【解决方案1】:

    使用 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

    【讨论】:

    • 但这意味着我在 ts 文件中声明了变量,但在我的情况下,输入的数量不是恒定的,所以我不能声明这些变量以使用 @ 获取值987654329@
    • 如果您使用数组,输入的数量不必是恒定的。我以更多代码为例更新了我的答案。
    • 感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-17
    • 2021-04-12
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多