【发布时间】:2021-09-27 08:12:01
【问题描述】:
我正在构建一个带有 spring boot 和 angular 的学生系统。当我想更新联系信息时,我希望将来自后端的信息写入自动表单中的必要位置。我的代码部分就像下面的机器人一样,它没有写入任何值,尽管后端部分充满了数据。
@GetMapping("/Person/{personId}")
public Person getPersonID(@PathVariable(value = "personId") Integer personId) {
Person person = editorService.findBypersonId(personId);
return person;
}
data: Person = new Person();
ngOnInit() {
this.reloadData();
this.reloadForm();
}
reloadData() {
this.personService.getPErsonId(this.personId).subscribe(response => {
this.data = response;
});
}
reloadForm() {
this.ilanOlusturForm = new FormGroup({
personName: new FormControl(
this.data ? this.data.personName : "", [Validators.required]
),
});
}
export class Person{
name:string;
surname:string;
....
}
<nb-card>
<nb-card-body>
<nb-stepper #stepper>
<nb-step [stepControl]="ilanOlusturForm" >
<form [formGroup]="ilanOlusturForm" class="step-container">
<div class="row">
<div class="col-sm-3">
<div class="form-group">
<label class="label">Personel</label>
<input type="text" nbInput fullWidth fieldSize="small"
formControlName="personName">
</div>
</div>
</div>
</form>
</nb-step>
</nb-stepper>
</nb-card-body>
</nb-card>
ngOnInit() {
this.reloadData();
}
reloadData() {
this.personService.getPErsonId(this.personId).subscribe(response => {
this.data = response;
// Move this line to here
this.reloadForm();
});
}
reloadForm() {
this.ilanOlusturForm = new FormGroup({
personName: new FormControl(this.data ? this.data.personName : "", [Validators.required]),
});
}
【问题讨论】:
-
让
this.reloadForm();这个调用里面你订阅reloadData的声明。由于reloadData是异步操作。
标签: angular spring-boot angular-reactive-forms