Angular中的响应式表单:监听变化
来自菜鸟教程
像 FormGroup 和 FormControl 这样的响应式表单实例有一个 valueChanges 方法,该方法返回一个发出最新值的 observable。 因此,您可以订阅 valueChanges 来更新实例变量或执行操作。
如果这对您来说是全新的,请查看我们的 反应式表单介绍 。
在这里,我们将创建一个非常简单的示例,每次表单中的值更改时都会更新模板字符串。
首先,让我们用 FormBuilder 初始化我们的响应式表单:
myForm: FormGroup; formattedMessage: string; constructor(private formBuilder: FormBuilder) {} ngOnInit() { this.myForm = this.formBuilder.group({ name: '', email: '', message: '' }); this.onChanges(); }
注意我们在初始化表单后如何在 ngOnInit 生命周期钩子中调用 onChanges 方法。 下面是我们的 onChanges 方法的内容:
onChanges(): void { this.myForm.valueChanges.subscribe(val => { this.formattedMessage = `Hello, My name is ${val.name} and my email is ${val.email}. I would like to tell you that ${val.message}.`; }); }
您还可以侦听特定表单控件而不是整个表单组的更改:
onChanges(): void { this.myForm.get('name').valueChanges.subscribe(val => { this.formattedMessage = `My name is ${val}.`; }); }
🌌 由于 valueChanges 返回一个 observable,你的天空几乎是你可以对发出的值做什么的限制。