1.0.0 • Published 7 years ago

ember-computed-indirect v1.0.0

Weekly downloads
153
License
MIT
Repository
github
Last release
7 years ago

ember-computed-indirect

This is a small Ember addon that helps deal with indirect or dynamic computed properties. What this means is that you can have one property store a reference to the property you would really like to watch, getting updates when either the referenced property or the reference changes. Example:

import computedIndirect from 'ember-computed-indirect';

var object = Ember.Object.extend({
  source1: 'value1',
  source2: 'value2',
  path: 'source1',
  value: computedIndirect('path')
}).create();

object.get('value'); // 'value1'
object.set('value', 'newvalue');
object.get('source1'); // 'newvalue'
object.set('path', 'source2');
object.get('value'); // 'value2'

There also is nothing stoping you from making the path itself a computed property:

var object = Ember.Object.extend({
  originalObject: { original: true },
  editingObject: { editing: true },

  editing: false,
  objectPath: Ember.computed('editing', function() {
    return this.get('editing') ? 'editingObject' : 'originalObject'
  },
  
  currentObject: computedIndirect('objectPath')
}).create();

object.get('currentObject'); // { original: true }
object.toggleProperty('editing');
object.get('currentObject'); // { editing: true }
1.0.0

7 years ago

0.3.1

7 years ago

0.3.0

9 years ago

0.2.0

9 years ago

0.1.0

9 years ago