如果任何控件值发生变化,请检查FormGroup?有财产吗?在Angular 2中

时间:2018-05-29 04:48:05

标签: angular typescript

我在FormGroup中有15个可编辑的项目,它们是文本框和选择(下拉列表)。我只是想知道用户是否编辑过任何项目(意味着更改了值)。是否有任何直接财产或其他东西,以便我可以检查是否有任何项目值被更改?

1 个答案:

答案 0 :(得分:1)

myForm: FormGroup;
message: string;

constructor(private formBuilder: FormBuilder) {}

ngOnInit() {
  this.myForm = this.formBuilder.group({
    name: '',
    email: ''
  });

  this.onChanges();
}

注意我们在初始化表单后如何在ngOnInit生命周期钩子中调用onChanges方法。这是onChanges方法的内容:

onChanges(): void {
  this.myForm.valueChanges.subscribe(val => {
    this.message =
    `Hello ${val.name}`;
  });
}

您还可以侦听特定表单控件的更改,而不是整个表单组:

onChanges(): void {
  this.myForm.get('name').valueChanges.subscribe(val => {
    this.message = `My name is ${val}.`;
  });
}