在 angular 6+ 中创建动态 ngModel

To create dynamic ngModel in angular 6+

您好,我正在创建一个 table,其中的行会根据特定条件发生变化。

<table id="totBudget">
      <thead>
        <tr>
          <th></th>
          <th>CC_1</th>
          <th>CC_2</th>
          <th>CC_3</th>
          <th>CC_4</th>
          <th>Total</th>
          <th>CC_NAME</th>
        </tr>
      </thead>
      <tbody>
        <tr *ngFor="let item of source; let i= index">
          <td>{{item.name}}</td>
          <td><input type="text" class="{{item.value}}1" id="{{item.value}}1"></td>
          <td><input type="text" class="{{item.value}}2" id="{{item.value}}2"></td>
          <td><input type="text" class="{{item.value}}3" id="{{item.value}}3"></td>
          <td><input type="text" class="{{item.value}}4" id="{{item.value}}4"></td>
          <td><input type="text" class="{{item.value}}tot" id="{{item.value}}tot"></td>
          <td><input type="text" class="{{item.value}}cc" id="{{item.value}}cc"></td>
        </tr>
      </tbody>
    </table>

我需要创建一个动态 ngModel,其名称与行示例中提到的 id 相同:{{item.value}}1。 在这里我不确定如何为名称取决于 item.value 和 table 行的所有输入创建 ngModel。 如果您有任何建议,请告诉我。

您可以像这样创建对象来保存 table 的状态

TS:

tableObject ={}

HTML:

        <tr *ngFor="let item of source; let i= index">
          <td>{{item.name}}</td>
          <td><input type="text" [(model)]="tableObject[item.value +'1']" class="{{item.value}}1" id="{{item.value}}1"></td>
          <td><input type="text" [(model)]="tableObject[item.value +'2']" class="{{item.value}}2" id="{{item.value}}2"></td>
...
        </tr>

让我知道对你有帮助