[Vue] fix infinite loop when using custom field angularjs template #18507
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description:
In the FieldAngularJsTemplate.vue component we clone the form field value before it goes to angularjs and vice versa in order to make sure mutations in angularjs, where the data is meant to be mutable, doesn't create unexpected changes in the Vue layer, where the data is not meant to be modified by the form field components. Currently this causes an infinite loop in some cases as we check instance equality, and the instance changes when we clone the value. Fixed by doing a deep equal before propagating changes from either side.
Review