angular - 来自服务器响应的动态表单
问题描述
我使用本教程创建了一个 DynamicForm 项目,它工作正常。
现在我想使用一个服务器,它最初提供表单状态并对表单的变化做出反应。
因此,我从服务器请求表单 inital 并像这样更改了 AppComponent。
export class AppComponent implements OnInit {
@ViewChild(DynamicFormComponent) form: DynamicFormComponent;
regConfig: FieldConfig[] = [];
constructor(private http: HttpClient) {
}
ngOnInit() {
this.getForm();
}
valueChange(value) {
this.getForm(value.name);
}
getForm(name?) {
let myParams = new HttpParams().set('lang', 'de');
if (!!name) {
myParams = myParams.set('name', name);
}
this.http.get('http://10.9.99.128:8080', {params: myParams})
.subscribe((value) => {
this.regConfig = value['formControls'];
});
}
}
和 DynamicFormComponent 到这个:
export class DynamicFormComponent implements OnChanges {
@Input() fields: FieldConfig[] = [];
@Output() submit: EventEmitter<any> = new EventEmitter<any>();
form: FormGroup = this.fb.group({});
constructor(private fb: FormBuilder) {
}
ngOnChanges() {
this.form = this.createControl();
this.form.valueChanges.subscribe((value) => {
this.submit.emit(value);
});
}
}
现在我有一个问题,在输入一个值后,我将请求发送到服务器,它以新的表单表示进行响应。但由于是全新的形式,当前的领域会失去重点。特别是对于输入字段,您必须在每个字母后再次单击该字段。
如何创建动态表单,其中服务器确定显示哪些字段,哪些不取决于输入值?
此致
解决方案
推荐阅读
- delphi - Delphi Rio 10.3.3 MapView Marker onDrag 返回错误的坐标
- javascript - 无论用户给出的图像尺寸如何,如何自动裁剪图像并接受方形图像
- arrays - Swift:扩展关联类型为数组的协议
- java - 为什么 switch 会执行(int 类型)不匹配的情况?
- python - Scrapy脚本获取错误数据
- java - 使用什么:Spring/Hibernate 中的 sql 迁移或实体设置?
- python - SQL Alchemy:有没有办法在提交之前获取父 ID?
- flutter - Flutter将列表数据添加到具有特定名称的另一个列表中
- sql - 统计日期为上个月的记录
- mlt - 熔体复合过渡略微混合