我有这个plunker。我正在基于model(在app.ts中定义)动态创建表单组件,并且无法添加
formControlName = "name"
到组件。在control-factory.directive.ts中添加
this.form.addControl(this.model.name, new FormControl());
但是我怎样才能绑定这个值呢?

最佳答案

为了使表单值与您的自定义模型保持同步,我将订阅control.valueChanges

let control = new FormControl(this.model.data);
control.valueChanges.subscribe(x => {
  this.model.data = x;
});
this.form.addControl(this.model.name, control);

为了保持模型和视图的同步,我将FormControl绑定到反应指令,即formControl
数据包
<input [formControl]="form.get(model.name)">

Modified Plunker

10-06 12:25