1bc53eb303
Currently when an instance of the `FormControlName` directive is destroyed, the Forms package invokes the `cleanUpControl` to clear all directive-specific logic (such as validators, onChange handlers, etc) from a bound control. The logic of the `cleanUpControl` function should revert all setup performed by the `setUpControl` function. However the `cleanUpControl` is too aggressive and removes all callbacks related to the onChange and disabled state handling. This is causing problems when a form control is bound to multiple FormControlName` directives, causing other instances of that directive to stop working correctly when the first one is destroyed. This commit updates the cleanup logic to only remove callbacks added while setting up a control for a given directive instance. The fix is needed to allow adding `cleanUpControl` function to other places where cleanup is needed (missing this function calls in some other places causes memory leak issues). PR Close #39623 |
||
---|---|---|
.. | ||
BUILD.bazel | ||
directives_spec.ts | ||
form_array_spec.ts | ||
form_builder_spec.ts | ||
form_control_spec.ts | ||
form_group_spec.ts | ||
reactive_integration_spec.ts | ||
spies.ts | ||
template_integration_spec.ts | ||
util.ts | ||
validators_spec.ts | ||
value_accessor_integration_spec.ts |