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.

Reply via email to