I have a dynamic form, something like this.

```
 profileForm = new FormGroup({
    firstName: new FormControl(''),
    lastName: new FormControl(''),
    age: new FormControl(''),
    ...
  });

```

I want to do something when the value changes, so I did:

```
this.profileForm.valueChanges.subscribe(() => {
           console.log('changed' + this.profileForm.getRawValue());
});

```

But I don't want every change from the entire form, just from some of the controls, but I can't do this approach:

> 
> this.profileForm.controls['firstName'].valueChanges...
> 
> 
> 

because my form is dynamic.
so I tried to create an array in my dynamic method, something like that will return this.

```
controlsTrigger = ['firstname', 'age'];

```

note that the last name it's should not trigger the console.log.

so I saw the merge operator from rxjs

```
merge(
    this.form.get("firstname").valueChanges,
    this.form.get("age").valueChanges,
).subscribe(() => console.log('changed'));

```

But I want to use it with dynamics controls.