首页 > 解决方案 > ngFor 中的动态 ngModel 不起作用

问题描述

我已经查看了如下页面

    <div class="row" *ngFor="let c of conditionArray;>
        <div class="col-sm-12 col-xl-2 m-b-10">
            <ng-select [(ngModel)]="c.condition" placeholder="Select Condition" [ngClass]="'ng-select'" [options]="conditions" [multiple]="false">      </ng-select>
        </div>
   </div>

我的组件如下所示

this.frm={};
conditionArray:Array<any> =
[
    {
      condition:'frm.condition1',
      pos:1
    }
]
saveCond(){
    alert(JSON.stringify(this.frm));
}

当我调用 saveCond() 方法时,它总是显示空对象。但是,如果我将我的 HTML 模型重写为 have [(ngModel)]="frm.condition1",那么它工作正常。我在这里做错了什么?

标签: angularangular6ngforngmodel

解决方案


我做了一个小改动,现在它工作正常!我没有传递整个模型(frm.condition1),而是将其更改为仅传递内部模型名称。如下图,

    conditionArray:Array<any> =[
    {
      condition:'condition1',
      pos:1
    }
  ]

从我的 HTML 中,我将模型推送到“frm”对象中,

[(ngModel)]="frm[c.condition]"

现在我可以访问“frm”对象


推荐阅读