ember-deep-set
is a simple utility function to deeply set a value on an Ember Object or POJO. Note that this mutates the object.
To install:
ember install ember-deep-set
Ember.set
will throw an error if you try to set a value on a non-existent object. For example:
Ember.set({}, 'foo.bar.baz', 123); // Property set failed: object in path "foo.bar" could not be found or was destroyed.
With ember-deep-set
, you can safely and deeply set values on POJOs as well as Ember.Objects without having to first create the empty intermediate objects.
import Ember from 'ember';
import deepSet from 'ember-deep-set';
const { get } = Ember;
let company = {};
deepSet(company, 'region.department.director.name', 'Jim Bob');
deepSet(company, 'region.department.name', 'Accounting');
deepSet(company, 'region.name', 'North America');
get(company, 'region.department.name'); // "Accounting"
get(company, 'region.department.director'); // { name: "Jim Bob" }
deepSet
is designed to be a drop-in replacement to Ember.set
:
object
:{Ember.Object|Object}
The object to set values onkey
:{String}
The key to setvalue
:{Any}
Value to set
value
:{Any}
Value that was passed in
git clone <repository-url>
this repositorycd ember-deep-set
npm install
bower install
ember serve
- Visit your app at http://localhost:4200.
npm test
(Runsember try:each
to test your addon against multiple Ember versions)ember test
ember test --server
ember build
For more information on using ember-cli, visit https://ember-cli.com/.