У меня есть данные Json, подобные этим:
assets/details.json
{
"name" : "john",
"age" : 20,
"address" : [{
"main": "address1",
"sub": "address2"
},
{
"main": "add1",
"sub" : "add2"
}]
}
Я хочу показать все эти данные Json в угловых формах с patchValue.
Я пробовал это.
app.component.ts
export class AppComponent {
data: FormGroup
constructor(private FB: FormBuilder, private service: DataService) {}
ngOnInit() {
this.data = this.FB.group({
name: [''],
age: [''],
address: this.FB.array([
this.addAddress()
])
})
this.getData()
}
addAddress(): FormGroup {
return this.FB.group({
main: [''],
sub: [''],
})
}
}
getData(){
this.service.getData('../assets/details.json').subscribe( (data) => {
this.data.patchValue({data})
}
}
И я создал мою HTML-страницу следующим образом: app.component.html
<form [formGroup]="data" (ngSubmit)="onSubmit()">
<input formControlName="name" type="text" class="form-control col-sm-8">
<input formControlName="age" type="number" class="form-control col-sm-8">
<div formArrayName="address" *ngFor="let d of data.get('address').controls; let i = index;">
<div [formGroupName]="i">
<input formControlName="main" type="text" class="form-control">
<input formControlName="sub" type="text" class="form-control" />
</div>
</div>
</form>
Но ничего не работает, как я ожидал.Ничто не может заполнить форму.Я не знаю, как сделать дальше.
Как я могу получить все эти данные JSON в полях формы?
Любая помощь приветствуется.