Hi there,
I'm pretty new to elm, so maybe this is a common issue.. I have a list of
articles, each article is composed of an id, a name, a description and a
price. I have also, in the UI, 3 fields in order to create a new article
and add it to the list by clicking to the "click" button. All articles are
listed in a table.
But I really don't understand how to resolve this... Maybe by having an
article object and "bind" its properties with a onInput event on their
corresponding field, but even by doing that, I'm not sur how to implement
the update function. For now, the update function returns the model because
I don't know how to implement each cases...
Thanks for your help!
Here is the code :
import Html exposing (..)
import Html.App as App
import Html.Events exposing (onClick, onInput)
import Html.Attributes exposing (..)
main =
App.beginnerProgram {model = model, update = update, view = view}
type alias Model = List Article
type alias Article =
{
id: Int
,name: String
,description: String
,price: String
}
model: Model
model = [{
id = 1
,name = "Test 1"
,description = "Description..."
,price = "10.0"
}]
type Msg =
Run | UpdateName String | UpdateDescription String | UpdatePrice String
update: Msg -> Model -> Model
update msg model =
case msg of
UpdateName newName -> model
UpdateDescription newDesc -> model
UpdatePrice newPrice -> model
Run -> model
view model =
let th' field = th [] [text field]
tr' article = tr [] [ td [][text article.name]
,td [][text article.description]
,td [][text article.price]
]
in
div []
[input[type' "text", placeholder "Enter a name...", onInput UpdateName][]
,input[type' "text", placeholder "Enter a description...", onInput
UpdateDescription][]
,input[type' "text", placeholder "Enter a price...", onInput
UpdatePrice][]
,div[]
[
input[type' "button", value "click", onClick Run][]
]
,div[]
[
table [] [
thead[][tr [](List.map th' ["name", "description", "price"])]
,tbody[](List.map tr' model)
]
]
]
--
You received this message because you are subscribed to the Google Groups "Elm
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.