微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 formArray Angular 中获取值:找不到带有路径的控件

如何解决在 formArray Angular 中获取值:找不到带有路径的控件

我想在 formArray 中获取我的简单表单上的值,但它给了我错误。我尝试过其他解决方案,例如 Bootstap 5 Tooltips Markup,但它不起作用。

这是我的示例代码this one

    ----- HTML
<div class="form-group" formArrayName="optionGroup">
   <div *ngFor="let data of menuOptions; let i = index">
                    <div [formGroupName]="i" class=" " id="{{i}}">
                      <input
                        formControlName="optionsQty"
                        class="form-input qty qty{{i}}"
                        type="number"
                        id="qty{{i}}"
                        min="1"
                        [(ngModel)]="defaultOptionQtyTotal"
                      />
        
                      <input
                        formControlName="optionsName"
                        class="form-input"
                        type="text"
                        readonly
                        value=" {{data.name}} {{i}}"
                        id="optName{{i}}"
                      />
        
                      $<input
                        formControlName="optionsCost"
                        class="form-input"
                        type="text"
                        readonly
                        value=" {{data.cost}}"
                        id="optName{{i}}"
                      />
                    </div>
            </div>

这里是 .TS

----- TS
 constructor(private builder: FormBuilder) {
    this.form = this.builder.group({
      qtyTotal: this.builder.control("",[
        Validators.required,Validators.min(1)
      ]),optionGroup: this.builder.array([]);
     });
  } //end constructor

解决方法

您可以在类中初始化表单数组。

ngOnInit() {
  this.initFormArray();
}

initFormArray() {
    this.menuOptions.forEach(x => {
      (<FormArray>this.form.get("optionGroup")).push(
        this.builder.group({
          optionsQty: [null],optionsName: [x.name],optionsCost: [x.cost]
        })
      );
    });
  }

您遇到问题,因为您尝试访问 HTML 中的空表单数组。

更新solution.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。