-
Notifications
You must be signed in to change notification settings - Fork 66
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix of props update order, inactive while updating if data changed #222
Conversation
Thanks for your pull request. It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). 📝 Please visit https://cla.developers.google.com/ to sign. Once you've signed, please reply here (e.g.
|
CLAs look good, thanks! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the submission. Unfortunately this is breaking some of our integration and unit tests.
I think the right approach would be to unfortunately do another hack like __setMulti
. Perhaps running the internals of setProperites
in the correct order may notify in the desired order.
i.e. run _setPendingPropertyOrPath
for each of the new values in the correct order and call _invalidateProperties
. If that doesn't work we may have to dig in more and find the correct internal notification functions.
… if it matches the pattern
Hi, your idea is reasonable and I will try it. I made another commit, which probably will fail unit testing again, the idea is to set |
Well, using internals of 'setProperties' does not help really, since it is still unordered on lower level https://github.com/Polymer/polymer/blob/5c02730974f8e3138405e596cb5f8d8bb388a41f/lib/mixins/property-effects.html#L124 |
// atomic update | ||
this.setProperties(propertyUpdates, true); | ||
//Update properties in a specific order: data, tail and set inactive during update if data changed | ||
propertyUpdates.hasOwnProperty("data") && this._setPendingPropertyOrPath("data", propertyUpdates.data, true); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What about setting without notifying all of the properties:
this._setPendingPropertyOrPath("data", propertyUpdates.data, false);
and then call this.notifyPath('data', propertyUpdates.data)
but in the correct order after all have been set?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not 100% sure this will work; not sure if it will trigger runEffects
Any updates? |
Ho there. I am following this issue from #164 which is still basically unresolved... and it looks like it will be for a while. Any hints on this? |
#148
#185
#148
#164
Please see #164 (comment)