Mam element HTML <select>
z 3 opcjami i elementem <p>
. W elemencie <p>
chcę wydrukować indeks aktualnie wybranego elementu w postaci <select>
. Na przykład. jeśli wybiorę pierwszą opcję, powinien wydrukować 0, jeśli wybiorę drugą opcję, powinien wydrukować 1, i tak dalej. Jak przejść od minimalnego kodu podanego poniżej?Jak wydrukować indeks wybranej opcji w wiąz?
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
Jednak można zrobić bez cięć? :) –
Skrócone nazwy opakowań. Ten przykład bardzo mi pomógł, ale musiałem go skopiować w edytorze tekstu i zmienić JD na Json.Decode itd., Zanim mogłem to zrozumieć. –
Byłoby wspaniale zobaczyć to zaktualizowane dla elm-0.17, jeśli masz czas. Spróbuję to zrobić, jeśli uważam, że moje zrozumienie wybranych opcji jest wystarczająco dobre. – MichaelJones