A basic replacement for the old ember select view, which strives to follow modern ember conventions.
npm install ember-select-listember-select-list is a basic component which strives to replace the old {{view 'select'}} while following the modern ember paradigm of "data-down-actions-up" as closely as possible.
http://begedin.github.io/ember-select-list
* ember install ember-select-list
A straight replacement of the old select view would be done in the following way.
The following handlebars markup
``handlebars`
{{view "select"
content=programmers
optionValuePath="content.id"
optionLabelPath="content.firstName"
value=selectedProgrammerId}}
can be replaced with
`handlebars
{{select-list content=programmers
optionValuePath='id'
optionLabelPath='firstName'
value=selectedProgrammerId
action=(action (mut selectedProgrammerId))}}
`
As clear from the markup, the default behavior of the value binding is one way. In order to make it two-way, using the mut helper is required. Additionally, label and value paths do not require speficying the root element name.
The following attribute bindings are supported: disabled, tabindex, required, title
The following syntax for label and value paths is supported and will work.
`handlebars`
{{select-list content=myData
optionValuePath='level1.level2.id'
optionLabelPath='level1.level2.label'}}
This will work
`handlebars`
{{select-list content=myData
optionLabelPath='level1.level2.label'}}
As will this
`handlebars`
{{select-list content=myData
optionValuePath='level1.level2.id'}}
The corresponding component property will simply be set to the value of the entire selected item in the content array.
content can be int he format of ['Item A', 'Item B', ...] or [ ObjectA, ObjectB, ...].
`handlebars
{{select-list content=myData
action='myCustomAction'}}
``
The action will be triggered when the selection is changed.
This addon should currently work with ember@2.x, but I haven't tested it.