Angular ';[价值]';不以反应形式设置控制值

Angular ';[价值]';不以反应形式设置控制值,angular,typescript,angular-reactive-forms,Angular,Typescript,Angular Reactive Forms,我有以下情况: <input #physicalAddress1 type="text" formControlName="PhysicalAddressLine1" /> <tfg-toggle #physicalAsPostal formControlName="PhysicalAsPostal" [onText]="'Yes'" [offText]="'No'"></tfg-tog

我有以下情况:

<input #physicalAddress1 type="text" formControlName="PhysicalAddressLine1" />

<tfg-toggle #physicalAsPostal 
            formControlName="PhysicalAsPostal" 
            [onText]="'Yes'" 
            [offText]="'No'"></tfg-toggle>

<input type="text" 
       formControlName="PostalAddressLine1" 
       [value]="physicalAsPostal.value === true ? physicalAddress1.value : ''" />

不知道我为什么会有这种行为。我该怎么做呢?

Monsterthie,您不能同时使用formControlName和[value]。您需要更改directy PhysicalAddressLine1.controls.PostLadDressLine1.value。创建表单后,可以使用.ts中的值更改。有些类似:(*)我设想一个实现OnInit和OnDestroy的组件

alive=true; //<--declare a variable
ngOnInit(){
  this.form=this.fb.group(...)
  this.form.controls.PhysicalAddressLine1.valueChanges
     .pipe(takeWhile(()=>this.alive))
     .subscribe(res=>{
       this.form.controls.PostalAddressLine1.setValue(res?res:'')
     })
}
ngOnDestroy()
{
   this.alive=false;
}
alive=true//这个,还活着
.订阅(res=>{
this.form.controls.PostalAddressLine1.setValue(res?res:“”)
})
}
恩贡德斯特罗()
{
这个。活着=假;
}

注意:我提供了一个典型的结构,用于在组件被销毁时删除订阅

共享您的ts文件什么是
tfg toggle
?它是否实现了
ControlValueAccessor
?否则,您将无法通过向其传递
formControlName=“PostalAddressLine1”
来执行任何操作。Toggle的行为就像一个复选框,可以是true,也可以是false,与此问题无关。如前所述,我可以看到PostLadDressLine1输入字段中填充了PhysicalAddressLine1输入字段中的数据,但当我提交表单时,PostLadDressLine1 formcontrol控件的值为空。我希望我不必这样做。谢谢
alive=true; //<--declare a variable
ngOnInit(){
  this.form=this.fb.group(...)
  this.form.controls.PhysicalAddressLine1.valueChanges
     .pipe(takeWhile(()=>this.alive))
     .subscribe(res=>{
       this.form.controls.PostalAddressLine1.setValue(res?res:'')
     })
}
ngOnDestroy()
{
   this.alive=false;
}