ember-set-helper icon indicating copy to clipboard operation
ember-set-helper copied to clipboard

Documentation around setting nested keys

Open brokenalarms opened this issue 3 years ago • 1 comments

Have just spent about an hour trying to convert this: oninput={{action (mut this.creativeForForm.shareContent.shareCommentary.text) value="target.value"}}

into this: {{on "input" (pick "target.value" (set this "creativeForForm.shareContent.shareCommentary.text"))}}

I would have expected this to work per your docs, since the format generally appears to be set thisContext "path" newValue, though after a while it apparent that no examples of nested paths are actually provided in the docs. It says dynamic paths can be provided, but still sticks to the syntax of set thisContext pathExpressedAsVariable.

Eventually through trial and error, I discovered that {{on "input" (pick "target.value" (set this.creativeForForm.shareContent.shareCommentary.text))}}

works, although this is not documented at all (but is the same format as mut but this style isn't mentioned once in the docs). Given your API for everything else, I even would have expected {{on "input" (pick "target.value" (set this.creativeForForm.shareContent.shareCommentary "text"))}} over the one that actually ended up working.

Would appreciate a callout added to the docs on how exactly setting nested paths should be achieved then as I don't want to be using an undocumented method if this is not stable. Thanks!

brokenalarms avatar Mar 08 '21 23:03 brokenalarms

In fact if you follow your documentation to do set this 'path' value it actually gives an error in the build, the (set) helper can only recieve 2 arguments at most, recieved: 3l. (received)

...all the examples have 3 arguments :) It seems like the documentation needs updating generally.

brokenalarms avatar Mar 08 '21 23:03 brokenalarms