ember-model-original-attributes

The default blueprint for ember-cli addons.

MIT License

Downloads
6
Stars
3

ember-model-original-attributes

Add new computed properties to Models with values equal to some saved attribute's values.

Install

ember install ember-model-original-attributes

Usage

Create a section originalAttributes in the config/environment.js:

module.exports = function(/* environment, appConfig */) {
  return {
    originalAttributes: {
      prefix: 'old',
      models: {
        user: {
          attrs: ['firstName', 'lastName']
        }
      }
    }
  };
};

Model user will have two new computed properties called oldFirstName and oldLastName. Both of them will be equal to the saved values of the firstName and lastName.

Existing computed properties, attributes or relationships won't be overridden.

Prefix original is used by default.

Property models is a hash with keys equal to Model names. Its values are hashes with property attrs. Each attrs is an array with attribute names that should be processed.

store.findRecord('user', '1').then(user => {
  user.get('firstName');      // 'Jim'
  user.get('oldFirstName');   // 'Jim'
  user.set('firstName', 'Tychus');
  user.get('firstName');      // 'Tychus'
  user.get('oldFirstName');   // 'Jim'
  user.save().then(() => {
    user.get('firstName');    // 'Tychus'
    user.get('oldFirstName'); // 'Tychus'
  });
});