Neu bei Ulme. Mit Ulme 0,18.Aktualisierung Modell mit Parameter in Ulme 0,18
Dies ist ein sehr einfaches SPA mit 12 Tasten (jeweils mit einem Notenwert). Sie klicken auf die Schaltfläche und es wird die Notiz angezeigt, auf die Sie geklickt haben.
Ich würde dies tun, indem Sie eine Funktion Put
zu einer Schaltfläche über onClick
zuweisen, dann übergeben Sie einen String-Parameter note
, die verwendet wird, um das Modell zu aktualisieren.
Hier ist mein Code:
import Html exposing (div, beginnerProgram, text, button)
import Html.Events exposing (onClick)
import List exposing (..)
main =
beginnerProgram { model = model, update = update, view = view }
-- model
model =
{ key = "C" }
keys =
["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"]
-- update
type Action = Put
update msg model =
case msg note of
Put ->
{ model | key = note }
-- view
makeButton note =
button [ onClick Put note ] [text note]
view model =
div [] [
div [] [text (toString model.key)],
div [] (map makeButton keys)
]
ich diesen Fehler:
-- NAMING ERROR -------------------------------------------------- musiccalc.elm
Cannot find variable `note`
19| case msg note of
Ja. Außerdem denke ich, es wäre besser, wenn Sie Keys als union type setzen, wobei type Key = C | C# | D | D # | ... 'und dann kannst du deine' type Action' als 'type Action = Put Key' einstellen. Was denken Sie? – gabrielperales
@gabrielperales Schönes Beispiel für TDD in Elm. Typ Driven Development: P Das Modell wäre auch 'type Model: Key' und' model = C# '. – cDitch