Ho un elemento HTML <select>
con 3 opzioni e un elemento <p>
. Nell'elemento <p>
, desidero stampare l'indice dell'articolo attualmente selezionato in <select>
. Per esempio. se seleziono la prima opzione, dovrebbe stampare 0, se seleziono la seconda opzione, dovrebbe stampare 1 e così via. Come procedo dal codice minimale, che viene fornito di seguito?Come stampare l'indice dell'opzione selezionata in Elm?
import Html as H exposing (Html)
import Maybe
import Signal as S exposing (Address, (<~))
type alias Model = { selected : Maybe Int }
model = { selected = Nothing }
type Action = NoOp | Select Int
update action model =
case action of
NoOp -> model
Select n -> { model | selected <- Just n }
view address model =
H.div []
[ H.select [] [ H.option [] [ H.text "0" ]
, H.option [] [ H.text "1" ]
, H.option [] [ H.text "2" ]
]
, H.p [] [ H.text <| Maybe.withDefault ""
<| Maybe.map toString model.selected ]
]
actions = Signal.mailbox NoOp
main = view actions.address <~ S.foldp update model actions.signal
Eppure, si potrebbe fare a meno tagli? :) –
Nome abbreviato dei pacchetti. Questo esempio mi ha aiutato molto, ma ho dovuto copypaste l'editor di testo e cambiato JD in Json.Decode ecc ... prima che potessi capirlo. –
Sarebbe eccellente vedere questo aggiornamento per elm-0.17 se si ottiene il tempo. Proverò a farlo se riterrò che la mia comprensione delle opzioni selezionate sia abbastanza buona. – MichaelJones