将角度反应形式FormControl绑定到动态值

时间:2017-12-07 10:52:25

标签: html5 angular angular-reactive-forms

我有一个使用FormBuilder实例化的反应式表单。我想使用此表单来更新或添加新员工。我正在尝试向formBuilder构造函数添加一个表达式,该构造函数检查是否存在当前选定的员工,以及是否使用该员工的一个接口字段作为表单上的值,如果没有当前选定的员工则为空字符串作为特定FormControl的值。

我尝试了什么:

'EMP_NM': [this.selectedEmp ? this.selectedEmp.EMP_NM : '',  Validators.required],

然后在我的editEmployee函数中:

editCashier(employee: IEmployee) {    
    this.selectedEmp = employee;      
    this.empForm.reset();     
    console.log(this.selectedEmp.EMP_NM);
}

当我这样做时,HTML中EMP_NM输入字段上显示的值不会更新。我已尝试在editEmployee函数中设置setTimeout(),但这也不起作用。知道这里可能出了什么问题吗?

我使用formBuilder的组函数在我的conponent的构造函数中初始化empForm。如果我将它移动到另一个函数然后每次调用editEmployee函数来重新初始化表单时调用该函数会有帮助吗?

1 个答案:

答案 0 :(得分:0)

您可以使用patchValue或setValue更新它:

this.empForm['controls']['employee'].patchValue(employee);

不知道它是否是嵌套控件,但你可以更多层次。