An Ember Object Proxy (and mixin) the enables change buffering. Ever need to "hold back" property changes before they propogate? If so this may be the project for you.
npm install --save-dev ember-buffered-proxy
import BufferedProxy from 'ember-buffered-proxy/proxy';
var content = {
firstName: 'stefan'
};
var buffer = BufferedProxy.create({
content: content
});
buffer.get('firstName'); // => 'stefan'
buffer.set('firstName', 'Kris');
buffer.get('firstName'); // => 'Kris'
buffer.get('content.firstName'); // => 'stefan'
buffer.get('hasChanges'); // => true
buffer.buffer; // => (get an object describing changed keys) -- {"firstName": "Kris"}
buffer.applyBufferedChanges();
buffer.get('firstName'); // => 'Kris'
buffer.get('content.firstName'); // => 'Kris'
buffer.get('hasChanges'); // => false
buffer.set('firstName', 'Luke');
buffer.get('firstName'); // => 'Luke'
buffer.get('content.firstName'); // => 'Kris'
buffer.discardBufferedChanges();
buffer.get('firstName'); // => 'Kris'
buffer.get('content.firstName'); // => 'Kris'
// Below demonstrates that applyBufferedChanges and discardBufferedChanges
// can take an optional array of keys.
buffer.set('email', '[email protected]');
buffer.get('email'); // => '[email protected]'
buffer.get('content.email'); // => undefined
buffer.set('address', '123 paradise road');
buffer.get('address'); // => '123 paradise road'
buffer.get('content.address'); // => undefined
buffer.applyBufferedChanges(['email']); // Only apply the email from the buffer
buffer.get('email'); // => '[email protected]'
buffer.get('address'); // => '123 paradise road'
buffer.get('content.email'); // => '[email protected]'
buffer.get('content.address'); // => undefined
buffer.setProperties({
email: '[email protected]',
address: '1717 rose street'
});
buffer.discardBufferedChanges(['address']); // Discard only the address property from the buffer
buffer.get('email'); // => [email protected]
buffer.get('address'); // => undefined
You can also use these shorter method names
buffer.discardChanges(); // equivalent to buffer.discardBufferedChanges()
buffer.applyChanges(); // equivalent to buffer.applyBufferedChanges()
Or you can grab the mixin directly
import BufferedMixin from 'ember-buffered-proxy/mixin';
var content = {
firstName: 'stefan'
};
var buffer = ObjectProxy.extend(BufferedMixin).create({
content: content
});
// same as above
git clone
this repositorynpm install
bower install
ember server
- Visit your app at http://localhost:4200.
ember test
ember test --server
ember build
For more information on using ember-cli, visit http://www.ember-cli.com/.