In JS we have a function like this:
const handleClick = event => {
event.preventDefault();
// some more code
}
<button onClick={this.handleClick}>Add to bag</button>
My Elm code:
main.elm
port addToBag : Value -> Cmd msg
type Msg
= ClickBag Item
update msg model =
case msg of
ClickBag item ->
let
data =
Encode.object
[ ("price", Encode.string item.price)
, ("sku", Encode.string item.sku)
]
in
( model, addToBag data )
view model =
button [onClick ClickBag model.item] [text "Add to bag"]
index.html
<div id="elm"></div>
<script type="text/javascript">
const addToBag = (params, btnSelector = null) => {
console.log('json data', params)
}
const ElmApp = Elm.Main.init(document.getElementById('elm'))
ElmApp.ports.addToBag.subscribe(addToBag)
</script>
For now, I can get the params value but don't know how to pass the event handler(like event in JS code) from Elm file to JS through port(pass that value to btnSelector),
so I can use that value for the legacy code. Anyone can help me?
Thanks a lot!