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