* ngfor中的ng-modell未显示正确的值

时间:2017-06-26 10:22:26

标签: json angular typescript angular-ngmodel ngfor

我有一个JSON加载到我的Angular2应用程序中。

我的JSON名为tempPromotion,我尝试通过以下方式进入['results']

tempPromotion['response_payload']['ruleset_list']['results']
['results']中的

是2个值,['value_path']['calculation']

我的HTML看起来像这样:

  <table class="table table-striped">
      <thead>
        <tr>
          <th>Value Path</th>
          <th>Result</th>
          <th>TEST</th>
        </tr>
      </thead>
      <tbody>
        <tr *ngFor="let result of rule['results']; let x = index">
          <td><input type="text" class="form-control" id="valuePath{{x}}" [(ngModel)]="result['value_path']" name="valuePath{{x}}"></td>
          <td><input type="text" class="form-control" id="discount{{x}}" [(ngModel)]="result['calculation']" name="discount{{x}}"></td>
          <td>{{x}} {{result['calculation']}}</td>
        </tr>
      </tbody>
    </table>

要理解为什么我使用rule,这是另一个* ngfor <div class="card" *ngFor="let rule of tempPromotion['response_payload']['ruleset_list']; let i = index">

我的输出看起来像这样

channel 1 | #Value * 0.8 | 0 #Value * 0.9 
channel 1 | #Value * 0.8 | 1 #Value * 0.8 

我的[(ngModel)]显示错误的值,而我的双向约束{{result['calculation']}}显示正确的值。

为什么会发生这种情况?这个问题的解决方案是什么?

1 个答案:

答案 0 :(得分:0)

我得到了它的工作。

我的问题是我的输入有相同的ID /名称。

id="valuePath{{x}}"更改为id="valuePath{{i}}{{x}}"修复它。