Javascript 角度-更改其中一个输入后从输入列表中获取值
我有这样的模板:Javascript 角度-更改其中一个输入后从输入列表中获取值,javascript,angular,typescript,Javascript,Angular,Typescript,我有这样的模板: <tr *ngFor="let row of tableData; let rowIndex = index"> <td *ngFor="let cell of row; let i = index"> {{ cell != 'div1' ? cell : '' }} <div *ngIf="cell == 'div1'" class="table-div" #div1> <md-input-container
<tr *ngFor="let row of tableData; let rowIndex = index">
<td *ngFor="let cell of row; let i = index">
{{ cell != 'div1' ? cell : '' }}
<div *ngIf="cell == 'div1'" class="table-div" #div1>
<md-input-container>
<input mdInput placeholder="Amount" autocomplete="off"
min="100" value="0" #div1A>
</md-input-container>
<md-input-container>
<input mdInput placeholder="percent" autocomplete="off"
min="100" value="0" #div1p>
</md-input-container>
<md-input-container>
<input mdInput placeholder="qnt" autocomplete="off"
min="100" value="0" #div1q>
</md-input-container>
</div>
</td>
</tr>
{{cell!=“div1”?单元格:“”}
这个div显示在循环中。当我更改一个输入中的值时,我需要重新计算另外两个输入字段中的值
有人能告诉你怎么做吗?在单元格下创建一个Value属性,然后你可以在第一次输入时使用如下的双向绑定
[(ngModel)]="cell.Value"
对于其他2个输入,创建单向绑定,如
[ngModel]="cell.Value * 2"
[ngModel]="cell.Value * 2 + 20"
在每个输入标记中添加此行
(ngModelChange)="saverange(rowIndex, i)"
用这种方法进行计算
saverange(a,b){
//Now update only this variable
this.dataTable[a]
// Update all three values of ngmodal
}
我将实现类似这样的东西的方法是
给他们自己的绑定到row对象的ngmodel
:
<tr *ngFor="let row of tableData; let rowIndex = index">
<td *ngFor="let cell of row; let i = index">
{{ cell != 'div1' ? cell : '' }}
<div *ngIf="cell == 'div1'"
class="table-div"
#div1>
<md-input-container>
<input mdInput
placeholder="Amount"
autocomplete="off"
min="100"
value="0"
[(ngModel)]="row.amount"
(ngModelChange)="onAmountChange(row)"
#div1A>
</md-input-container>
<md-input-container>
<input mdInput
placeholder="percent"
autocomplete="off"
min="100"
value="0"
[(ngModel)]="row.percent"
#div1p>
</md-input-container>
<md-input-container>
<input mdInput
placeholder="qnt"
autocomplete="off"
min="100"
value="0"
[(ngModel)]="row.qnt"
#div1q>
</md-input-container>
</div>
</td>
</tr>
希望这对循环中显示的输入有帮助。当我将[(ngModel)]=“amount”添加到第一个输入并更改值时,插入的值将显示在此行的其他输入中,但我需要仅更改此单独输入中的值。
percent
和qnt
值是否主要依赖于amount
值?所以它们都是只读的,百分比和qnt值可以在循环中显示。当我将[(ngModel)]=“amount”添加到第一个输入并更改值时,插入的值将显示在此行的其他“amount”输入中,但我需要仅更改此单独输入中的值。您可以发送索引值并根据传递的索引更新元素,请尝试此更新的答案
onAmountChange(row: any)
{
// here modify your desired values every time amount changes
// row.percent = 0;
// row.qnt = 0;
}