在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已更改,则显示消息。
这样,我们就可以仅在控件的值发生变化时执行相应的逻辑。