Changes to buffered proxy not appearing in template
See original GitHub issueHi folks. Got a small bug when upgrading my Ember app. Interestingly, this bug was attempted to be fixed previously, and that “fix” seems to now be a bug. More detail below:
What I expected to see
When modifying a property on a buffer proxy object, via an input field, the changes should be reflected in the template.
What I saw
The first character typed in to the field was reflected on the template, any after that were not.
Software versions
Ember: v3.20.2
Ember Buffered Proxy: v2.0.0-beta.0
This as ok in Ember v3.17.0 which is what I am upgrading from.
Supporting info
I see that there was a fix here (46d00d71cc85726025e1c385892d59078640914c) and here (3f63beb49185f7c377104689deb6395d93d1b8b4) that “fixed” the same issue. The change was basically this:
- notifyPropertyChange(this, key);
+ notifyPropertyChange(content, key);
I have tested in my local code to reverse this change and it actually works.
So, maybe the bug that was originally “fixed” was actually working around a bug in Ember itself, that has since been patched, rendering the “fix” in this repo redundant.
I don’t have enough context around how the notifyPropertyChange works and what changes have been made to Ember (and Glimmer?) to diagnose this myself.
I have created 2 codesandboxes (below) that reproduce this issue. The first is the working sandbox using Ember v3.17.0 and the second where the issue is present, using Ember 3.20.2.
Working: https://codesandbox.io/s/vibrant-browser-g4n7p Not working: https://codesandbox.io/s/happy-wilbur-btx3x
I’m happy to submit a PR that changes this code back, however, it feels like it might be worth actually understanding the reasoning as to why the original code stopped working in the first place and why it now works. I’d need some assistance in digging in to that.
Issue Analytics
- State:
- Created 3 years ago
- Comments:7 (3 by maintainers)

Top Related StackOverflow Question
Ok, I’ve spent some time investigating versions (using this sandbox) and here’s the list as I see it. I’ll build a PR based on this:
notifyPropertyChange(this)notifyPropertyChange(content)3.12as this was the last version thatthisworked before https://github.com/yapplabs/ember-buffered-proxy/commit/46d00d71cc85726025e1c385892d59078640914c was introduced.v3.16. For some reason it works with boththisandcontent. I can’t explain this but I have verified it works 🤷♀️So, based on the above table, I’ll be using the following logic:
gte('3.13.0') && lt('3.20.0')-> usenotifyPropertyChange(content)notifyPropertyChange(this)Fixed by #90