我有一个根据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
函数时,它将重置为原始表单。如以下控制台日志所示:
第一个日志是在第一次设置formValue之后,接下来的两个都是在第二个选择之后。我不知道为什么它会设置该值,然后立即将其重置为原始值。这是正常行为吗?
当我随后实际选择原始formValue时,它会将其更新为我先前选择的值: