I have some logic in my custom form component which manipulates some fields within the form before sending the payload out with onChange(). I would like to trigger this manipulation of the form and send an update to the parent form on every writeValue() call. The problem is that if I call onChange() after the content changes, or in any of the Angular lifecycle hooks, i get the infamous "ExpressionChangedAfterItHasBeenCheckedError"
Code which handles onUpdate:
private handleOnFormUpdate(): void {
this.form.valueChanges.pipe(takeUntil(this.destroy$)).subscribe((productItem) => {
// removes some fields i REALLY don't want in my parent form...
const validProductItem: DTO.ProductItemInput = {
...productItem,
};
this.onTouched();
this.onChange(validProductItem);
});
}