fix: force model's item bindings to re-render in template renderer #2067
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
When calling
setProperties(...)to re-render a Polymer template instance, it compares the new properties with old ones using the===operator to skip rendering not changed properties.However, in case of an object property, the
===operator can't determine whether the object has been mutated inside. Thus, the property won't be re-rendered when mutated.This issue appears in the template renderer when mutating the
model.itemobject after it is bound to a template.This PR introduces a workaround that forces
model.itemtemplate bindings to re-render even the new item is strictly equal to the old item.Type of change
Checklist
Additional for
Featuretype of change