Angular2 获取动态创建输入的值

Angular2 get values of dynamically created inputs

我有这个输入是从列表 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 获取所有生成输入的值的方法是什么?

最简单的方法是使用 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

我做的是:

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

在组件 class 中:

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
    }
}