我有这个输入是从列表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方法是什么?
答案 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
}
}