Angular2获取动态创建的输入的值

时间:2016-11-10 17:46:58

标签: angular angular-material angular2-template angular2-directives angular2-material

我有这个输入是从列表column动态创建的,现在我需要在某个方法出现时获取所有输入值(想象getAllValues()

      <div *ngFor="let cell of column; let i = index;">
              <!-- Material design input-->
              <md-input type="{{cell.type}}" 
                 value="{{getInputValue(cell)}}" 
                 [placeholder]="cell.label">
              </md-input>
      </div>

获取所有生成输入值的angular2方法是什么?

2 个答案:

答案 0 :(得分:6)

最简单的方法是使用ngForm

<form #myForm="ngForm">
      <div *ngFor="let cell of column; let i = index;">
          <md-input [type]="cell.type" 
             [name]="cell.name"      <!-- Note the 'name' has to be set -->
             [ngModel]="cell.value"
             [placeholder]="cell.label"></md-input>
      </div>
      <a (click)="getAllValues(myForm)">print values</a>
</form>

然后,您将可以访问getAllValues()函数中的myForm.form.value对象。 Plnkr:https://plnkr.co/edit/84mzcNJliMmvszPq3xMm?p=preview

答案 1 :(得分:0)

我做的是:

              <md-input #input  // NOTICE #input
                          type="{{cell.type}}"
                          value="{{getInputValue(cell) || '--'}}"
                          [placeholder]="cell.label"></md-input>
组件类中的

export class MyComponent {

    @ViewChildren('input') inputs;


    public updateData(): void {
        console.log(this.inputs) //this will give access to id and values (explore it on google chromes console)
        console.log(this.inputs.toArray().map(x => x.value)) // this gives access to values
    }
}