嗨,我正在使用反应形式,我在那儿有一个部分,希望将值填充到另一个字段中
现在由于某种原因,当我使用浏览器中保存的值时,它无法完全填充电子邮件。它只需要接收电子邮件的首字母,有时在我手动填写电子邮件表格时会发生这种情况。
这是我的代码的实时示例。
答案 0 :(得分:1)
fillForm() {
this.myForm.valueChanges.subscribe(value => {
//I'm using .controls and .get, but both work here. Pick the one you prefer
this.myForm.controls['second_phone'].setValue(value.phone, { emitEvent: false});
this.myForm.get('second_email').setValue(value.email, { emitEvent: false});
});
}
如果需要,您还可以在{ onlySelf: true }
中使用setValue
(参考:
Angular 2 - FormControl setValue 'onlySelf' parameter)
并从模板的辅助字段中删除:value="{{myForm.get('email').value}}"
。
不是最好的方法
尝试一下:
fillForm() {
this.myForm.valueChanges.subscribe(value => {
if ((!value.second_email && value.email) || (!value.second_phone && value.phone)) {
value.second_phone = value.phone;
value.second_email = value.email;
}
});
}