[英]Angular Reactive Form clone value
我将Angular Reactive Form用于注册表单。
this.personalDataForm = new FormGroup({
'name': new FormControl(null, Validators.required),
'username': new FormControl(null, Validators.required),
'address': new FormControl(null, Validators.required),
'email': new FormControl(null, [Validators.required, Validators.email]),
'mobile': new FormControl(null),
'password': new FormControl(null),
});
在这种形式下,我希望当用户在name
字段中输入类似值时,会自动填充到username
name
段中
但是,当用户在username
name
段中键入内容时, name
字段不会受到影响。
请让我知道如何使用反应式表单实现此目的。
将所有表单操作逻辑都放在一个地方(在TS文件中),这是使用Reactive Forms后的推荐方法。
尝试这个:
this.personalDataForm.get('name').valueChanges.subscribe((x) => {
console.log('value has changed: ', x);
this.personalDataForm.patchValue({ username: x });
});
要取消订阅valueChanges,请检查以下答案: https : //stackoverflow.com/a/46893278/2050306
工作堆闪电战 。
您可以在username
上使用模板变量,如下所示(最简单的方法):
<input type="text" formControlName="name" #nameTemplate />
<input type="text" formControlName="username" [value]="nameTemplate.value"/>
在name
字段中键入的任何内容都会反映在username
name
段中,反之亦然。 并且该表单将保留username
的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.