ember-setp
It's like mkdir -p
, but for Ember.Object
.
Installation
$ ember install ember-setp
Usage
Just import and use like you would a regular Ember.set()
call:
; let book = EmberObject; // setp will create the intermediate objects (in this case, the `author` object); console; // { firstName: 'Dave' }
setp()
also handles arrays, and will create intermediate arrays for you as well:
; let book = EmberObject; // setp will create the intermediate objects (in this case, the `author` object); console; // [ { summary: 'It was a great book!' } ]
Implementation
setp()
will step through each segment of the path you are trying to set (i.e. for 'book.author.firstName'
, it will step through book
and author
). If that segment doesn't exist (technically, is null
or undefined
), it will create an empty object at that intermediate path. If any segment is a number, it assumes it is an array index. If no array exists at that path, one will be created.
Caveats: there's two big caveats to using setp()
:
- Your property names can't have
.
in them. That's proabably a really bad idea anyway.setp()
will treat a property with.
in it as a nested property. - You can't use numeric property names (i.e. just
'3'
as a property name). Another probably bad idea anyway, butsetp()
will confuse it for an array.