多次更新具有补丁程序值的表单会将其自身重置为先前的值

时间:2019-11-03 15:41:45

标签: javascript angular forms angular-material angular-reactive-forms

我有一个根据ID选择填充的表单组。但是,当我选择一个新的ID时,它会更新日志中的表单,然后直接返回到原始值。这是patchValue类中的代码:

patchValueForm(portfolio: any) {
 this.property_ids.patchValue(portfolio.property_ids);
 this.portfolio_name.patchValue(portfolio.portfolio_name);
 this.portfolio_id.patchValue(portfolio.portfolio_id);
 console.log(this.formGroup.getRawValue());

}

以及调用此函数的HTML:

          <mat-select >
            <mat-option *ngFor="let portfolio of portfolios"
                        [value]="portfolio.portfolio_name"
                        (onSelectionChange)="patchValueForm(portfolio); showFields = true"
            >
              {{portfolio?.portfolio_name}}
            </mat-option>
          </mat-select>

这将在第一个实例中加载正确的表单,但是当我随后更新ID并调用patchValueForm函数时,它将重置为原始表单。如以下控制台日志所示:

enter image description here

第一个日志是在第一次设置formValue之后,接下来的两个都是在第二个选择之后。我不知道为什么它会设置该值,然后立即将其重置为原始值。这是正常行为吗?

当我随后实际选择原始formValue时,它会将其更新为我先前选择的值:

enter image description here

0 个答案:

没有答案