Вы можете использовать takeUntil для автоматической отмены подписки:
private unsubscribe$: Subject<void> = new Subject<void>();
control.valueChanges
pipe(takeUntil(this.unsubscribe$))
.subscribe(_ => {
console.log(controlName + '>>>' + change);
});
ngOnDestroy() {
this.unsubscribe$.next();
this.unsubscribe$.complete();
}
или вы можете назначить control.valueChanges.subscribe
переменной (подписка) и отменить подписку.
let subs: Subscription[] = [];
FormControlsArray.map(controlName => {
const control = this.FGroup.controls[controlName] as FormControl;
this.subs.push(control.valueChanges.subscribe(() => {}));
});
ngOnDestroy() {
this.subs.forEach(sub => sub.unsubscribe());
this.subs = [];
}