Last active
December 22, 2016 06:21
-
-
Save chalmagean/c0b2f874bcff728b3db047aa26b4e477 to your computer and use it in GitHub Desktop.
Elm onSelect decoder
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-- Assuming we have a list of items in the model (type alias Model = { items : List Item } | |
-- where Item is a record like { id : Int, name : String } | |
-- this goes in the view and generates an html dropdown | |
select | |
[ onSelect ValueSelectedMsg ] | |
(List.map (\item -> option [ value (toString item.id) ] [ text item.name ]) model.items) | |
targetSelectedIndex : Json.Decoder Int | |
targetSelectedIndex = | |
Json.at [ "target", "selectedIndex" ] Json.int | |
onSelect : (Int -> msg) -> Html.Attribute msg | |
onSelect msg = | |
on "change" (Json.map msg targetSelectedIndex) | |
-- This will send a message containing the selected index (eg. ValueSelectedMsg 1) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks for this.
Got here from this SO answer