app.component.html:
<div *ngFor="let ivalue of arraytoDispaly;let i = index;">
<input type="text" [value]="ivalue.inputValue" />
<button (click)='GetId(i)'>GetID</button>
app.component.ts:
arraytoDispaly = [
{'inputValue':'abc'},
{'inputValue':'def'},
{'inputValue':'ghi'}];
GetId(val){
console.log()
}
需要在单击按钮时获取输入字段的值,我使用了ElementRef和@ViewChild,但未获取该值。任何人都可以指导我该怎么做,尽管我正在使用document.getElementById通过id来获取价值,但需要了解访问值的Angular方式,谢谢
答案 0 :(得分:2)
您可以像下面这样在ngFor
中传递当前值而不是索引-
<div *ngFor="let ivalue of arraytoDispaly;let i = index;">
....
<button (click)='GetId(ivalue)'>GetID</button>
GetId(val){
console.log(val.inputValue)
}
答案 1 :(得分:0)
尝试:
<div *ngFor="let ivalue of arraytoDispaly;let i = index;">
<input #i type="text" [value]="ivalue.inputValue" />
<button (click)='getId(i.value)'>GetID</button>
</div>
getId(val){
console.log(val)
}
PS:方法应采用驼峰式(getId
而非GetId
)
答案 2 :(得分:0)
我们可以使用 ngModel 在对象和输入元素之间同步数据
<div *ngFor="let elm of arraytoDispaly;">
<input type="text" [(ngModel)]="elm.inputValue" /> {{elm.inputValue}}
</div>