ember-buffered-proxy
An Ember Object Proxy (and mixin) that enables change buffering. Ever need to "hold back" property changes before they propagate? If so, this may be the addon for you.
Usage
ember install ember-buffered-proxy
import BufferedProxy from 'ember-buffered-proxy/proxy';
let content = {
firstName: 'stefan'
};
let buffer = BufferedProxy.create({
content: content
});
buffer.get('firstName');
buffer.set('firstName', 'Kris');
buffer.get('firstName');
buffer.get('content.firstName');
buffer.get('hasChanges');
buffer.buffer;
buffer.applyBufferedChanges();
buffer.get('firstName');
buffer.get('content.firstName');
buffer.get('hasChanges');
buffer.set('firstName', 'Luke');
buffer.get('firstName');
buffer.get('content.firstName');
buffer.hasChanged('firstName');
buffer.discardBufferedChanges();
buffer.get('firstName');
buffer.get('content.firstName');
buffer.hasChanged('firstName');
buffer.set('email', 'example@example.com');
buffer.get('email');
buffer.get('content.email');
buffer.set('address', '123 paradise road');
buffer.get('address');
buffer.get('content.address');
buffer.applyBufferedChanges(['email']);
buffer.get('email');
buffer.get('address');
buffer.get('content.email');
buffer.get('content.address');
buffer.setProperties({
email: 'sample@sample.com',
address: '1717 rose street'
});
buffer.discardBufferedChanges(['address']);
buffer.get('email');
buffer.get('address');
You can also use these shorter method names
buffer.discardChanges();
buffer.applyChanges();
Or you can grab the mixin directly
import BufferedMixin from 'ember-buffered-proxy/mixin';
let content = {
firstName: 'stefan'
};
let buffer = ObjectProxy.extend(BufferedMixin).create({
content: content
});
Compatibility
Version | Minimal Ember version required |
---|
> 2.1.0 | 3.13 |
> 1.0.1 | 3.8 |
0.8.0 - 1.0.1 | 2.15 |
< 0.8 | 2.5 |
Contributing
See the Contributing guide for details.
License
This project is licensed under the MIT License.