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-setnpm installbower install
ember serve- Visit your app at http://localhost:4200.
npm test(Runsember try:eachto test your addon against multiple Ember versions)ember testember test --server
ember build
For more information on using ember-cli, visit https://ember-cli.com/.