I am encountering an issue where the data in my formgroup does not update upon submission.
The formgroup successfully retrieves values from an API, but when attempting to update and return the value, it remains unchanged. I am unsure of what mistake I may be making.
I am utilizing reactive forms with Angular 7.
modify-view-action.component.html
<div fxLayout="column" fxLayoutGap="25px" class="modify-view-container">
<mat-card class="view-settings-descrpition-card">
<mat-card-content fxLayout="column">
<form [formGroup]="modifyActionForm">
<div class="container" fxLayout="row" fxLayoutGap="25px">
<div class="column1" fxLayout="column">
<p>Folder: {{dbrAction.FolderTag.Value}}</p>
<p>Primary Table: {{dbrAction.PrimaryTable}}</p>
<p>Special Use: {{dbrAction.SpecialUse}}</p>
<mat-form-field>
<mat-label>Name</mat-label>
<input matInput formControlName="ActionName">
</mat-form-field>
<mat-form-field>
<mat-label>Keywords</mat-label>
<input matInput formControlName="Keywords">
</mat-form-field>
<mat-form-field>
<mat-label>Description</mat-label>
<input matInput formControlName="Description">
</mat-form-field>
<mat-form-field>
<mat-label>Icon</mat-label>
<mat-select formControlName="Icon" ngDefaultControl>
<mat-option formControlName="Icon"
ngDefaultControl>
{{dbrAction.Icon}}
</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field>
<mat-label>Priority</mat-label>
<input matInput formControlName="Priority">
</mat-form-field>
<mat-form-field>
<mat-label>Title Font Size</mat-label>
<mat-select formControlName="TitleFontSize" [value]="dbrAction.TitleFontSize" ngDefaultControl>
<mat-option formControlName="TitleFontSize" [value]="dbrAction.TitleFontSize" ngDefaultControl>
{{dbrAction.TitleFontSize}}
</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field>
<mat-label>Subtitle Font Size</mat-label>
<mat-select formControlName="SubtitleFontSize" [value]="dbrAction.SubtitleFontSize" ngDefaultControl>
<mat-option formControlName="SubtitleFontSize" [value]="dbrAction.SubtitleFontSize" ngDefaultControl>
{{dbrAction.SubtitleFontSize}}
</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field>
<mat-label>Print Title Font Size</mat-label>
<mat-select formControlName="PrintTitleSize" [value]="dbrAction.PrintTitleSize" ngDefaultControl>
<mat-option formControlName="PrintTitleSize" [value]="dbrAction.PrintTitleSize" ngDefaultControl>
{{dbrAction.PrintTitleSize}}
</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field>
<mat-label>Print Subtitle Font Size</mat-label>
<mat-select formControlName="PrintSubtitleSize" [value]="dbrAction.PrintSubtitleSize" ngDefaultControl>
<mat-option formControlName="PrintSubtitleSize" [value]="dbrAction.PrintSubtitleSize" ngDefaultControl>
{{dbrAction.PrintSubtitleSize}}
</mat-option>
</mat-select>
</mat-form-field>
<!-- <mat-form-field>
<mat-checkbox matInput formControlName="IsActive" [(ngModel)]="dbrAction.IsActive" [value]="dbrAction.IsActive" [labelPosition]="labelPosition">Is Active: </mat-checkbox>
</mat-form-field> -->
</div>
</div>
</form>
modify-view-action.component.ts
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, FormControl } from '@angular/forms';
@Component({
selector: 'modify-view-action',
templateUrl: './modify-view-action.component.html',
styleUrls: ['./modify-view-action.component.scss']
})
export class ModifyViewActionComponent implements OnInit {
objectData: any;
constructor(private fb: FormBuilder) { }
dbrAction: any;
labelPosition: 'before' | 'after' = 'before';
modifyActionForm: FormGroup;
ngOnInit() {
this.initData();
this.modifyActionForm = this.fb.group({
FolderTag: new FormControl(this.dbrAction.FolderTag),
PrimaryTable: new FormControl(this.dbrAction.PrimaryTable),
SpecialUse: new FormControl(this.dbrAction.SpecialUse),
ActionName: new FormControl(this.dbrAction.ActionName),
Keywords: new FormControl(this.dbrAction.Keywords),
Description: new FormControl(this.dbrAction.Description),
Icon: new FormControl(this.dbrAction.Icon),
Priority: new FormControl(this.dbrAction.Priority),
TitleFontSize: new FormControl(this.dbrAction.TitleFontSize),
SubtitleFontSize: new FormControl(this.dbrAction.SubtitleFontSize),
PrintTitleSize: new FormControl(this.dbrAction.PrintTitleSize),
PrintSubtitleSize: new FormControl(this.dbrAction.PrintSubtitleSize),
IsActive: new FormControl(this.dbrAction.IsActive)
});
this.objectData = this.modifyActionForm.value;
console.log(this.objectData);
}
get f() { return this.modifyActionForm.controls; }
initData() {
this.dbrAction = JSON.parse(localStorage.getItem('DbrAction'));
}
}