On Monday, October 10, 2016 at 2:20:57 PM UTC+1, Rupert Smith wrote: > > On Monday, October 10, 2016 at 2:14:55 PM UTC+1, Rupert Smith wrote: >> >> On Sunday, October 9, 2016 at 9:41:46 PM UTC+1, Peter Damoc wrote: >>> >>> The only thing that remained to be shown with code is how to implement a >>> component in Elm and use it in Elm (yo, dawg style) . >>> >> >> Like this: >> >> Take the polymer-elm counter examples. >> Produce an elm counter. >> Wrap this as a webcomponent (without polymer). >> This will expose just 1 event, which is an update every time the counter >> value changes. The up/down events are hidden to the outside and only dealt >> with by the counter program internally. >> This will expose just 1 data value, an Int giving the counter value. It >> would be interesting to expose more complex data structures, but this is a >> starting point. >> Produce a minial API in Elm to interface to this webcomponent. It >> provides an 'oncountchanged' Property to its Html constructor, that takes >> an Int -> Msg argument, so that it can be set up to trigger an event with >> the new value when the counter is clicked. >> Write a little Elm program to make use of this counter. >> All the Elm code for the counter and the consuming program to be compiled >> together into 1 .js with 2 mains, to maximize code sharing. >> > > I've forked the elm-polymer code to here to use as a starting point for > trying the above: > > https://github.com/rupertlssmith/elm-polymer >
Another aspect to this would be for there to be some way for the application using the component to pass some initial/configuration values to the component, when creating it. So add a property to the component that can be set to some initial value of the counter. counter [ count 100, oncountchanged Count ] Might also look at how an function could be added to the API of the counter to set it to a particular value at a later time too. setCount: Int -> Cmd msg -- 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.
