在Angular中,可以使用valueChanges
属性来监听FormControl
的值的变化。
以下是一个示例代码,演示了如何仅检测已更改的FormControl
:
import { Component } from '@angular/core';
import { FormControl } from '@angular/forms';
@Component({
selector: 'app-example',
template: `
The value has been changed.
`,
})
export class ExampleComponent {
myControl = new FormControl();
constructor() {
this.myControl.valueChanges.subscribe(() => {
this.myControl.markAsDirty();
});
}
}
在这个示例中,我们创建了一个FormControl
实例myControl
,并将其绑定到一个输入框上。当输入框的值发生变化时,valueChanges
流会发出一个新的值,我们可以通过订阅该流来执行自定义的逻辑。在这个示例中,我们通过调用markAsDirty()
方法将表单控件标记为已更改。
在模板中,我们使用了*ngIf
指令来根据myControl.dirty
属性的值来显示或隐藏一个消息。如果myControl
已更改,则显示消息。
这样,我们就可以仅在控件的值发生变化时执行相应的逻辑。