在purescript-dom中,您如何从节点转到特定的元素类型?

时间:2017-06-13 23:33:42

标签: dom purescript halogen

我想我可能会错过purescript-dom模块中的一个关键函数,以便从Node转换为特定的元素类型。例如,如果我有Event,我可以使用DOM.Events.Events.target来获取Node,但似乎获取特定元素的唯一方法是使用unsafeCoerce,例如

import DOM.Event.Event (target)
import DOM.HTML.HTMLInputElement (value)

eval (InputChange event next) = do
  -- Get the value of the HTMLInputElement assuming it is one
  v <- H.liftEff $ value (unsafeCoerce $ target event)
  H.liftEff $ log "Input field change"
  H.liftEff $ log v
  pure next

有更好的方法从节点转换为元素类型吗?

1 个答案:

答案 0 :(得分:4)

当您想要转发toForeign /元素类型时,我们的想法是使用readHTMLInputElement然后使用Node

虽然经常写这样的东西很烦人,所以purescript-dom-classy旨在消除它的一些痛苦。除了避免toForeign步骤,您只需要Maybe来处理,而不是Except read函数将返回。