Skip to content

Instantly share code, notes, and snippets.

Last active October 7, 2021 09:41
Show Gist options
  • Save ef4/8367f996eb7b57d1f7a5 to your computer and use it in GitHub Desktop.
Save ef4/8367f996eb7b57d1f7a5 to your computer and use it in GitHub Desktop.
Goodbye old Select View
<select onchange={{action (mut vehicle) value="target.value"}}>
{{#each vehicles key="@item" as |vehicleChoice|}}
<option value={{vehicleChoice}} selected={{eq vehicle vehicleChoice}}>{{vehicleChoice}}</option>
Copy link

@ef4 Looks great, are there some docs available on what can be used as key in the #each helper? I've so far seen "@Index" and "@item" (I think) but it would be great to understand how the magic works. Thank you.

Copy link

KTKate commented Jun 15, 2015

You can just use key="@guid" everywhere for now. There isn't much documentation but the different key values depend on the type of item being iterated over. If they don't have a unique identifier then @Guid will generate one, if they do have a unique identifier then @Guid will use that. There is a pr to make hbs default to the appropriate key so you don't have to set it yourself.

Most of the explanations about this that I've seen were just on Slack.

Copy link

Trying to use this example... but i don't think the eq is working for me.. in that example i tried testing it by making it the text in the select box (both the values seem to be the same but it never triggers that they are equal)

Copy link

It was my bad! my menuable_id was numeric... so i just changed it to a string and it worked. It should work for me because all ids within ember are strings anyways....

Copy link

Haven't tried this out on my end yet, but was just curious. If target.value is already set, will it automatically select the value when the view renders?

Copy link

elbeezi commented Sep 10, 2015


DEPRECATION: Using '@guid' with the {{each}} helper, is deprecated. Switch to '@identity' or remove 'key=' from your template.

(Ember 1.13.6)

Copy link

shayanypn commented Dec 14, 2016

amazing job. Thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment