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

在purescript dom中,如何从节点到特定的元素类型?,dom,purescript,halogen,Dom,Purescript,Halogen,我想我可能在purescript dom模块中缺少一个键函数,无法将节点转换为特定的元素类型。例如,如果我有一个事件,我可以使用DOM.Events.Events.target来获取节点,但获取特定元素的唯一方法似乎是使用unsecfect,例如 是否有更好的方法从节点转换为元素类型?当您要向上转换节点/元素类型时,可以使用toForeign,然后读取htmlInputElement 但是,经常写这样的东西是很烦人的,所以我们的目标是减轻一些痛苦。除了避免toForeign步骤外,您将只需要处理

我想我可能在purescript dom模块中缺少一个键函数,无法将节点转换为特定的元素类型。例如,如果我有一个事件,我可以使用DOM.Events.Events.target来获取节点,但获取特定元素的唯一方法似乎是使用unsecfect,例如

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

当您要向上转换节点/元素类型时,可以使用toForeign,然后读取htmlInputElement

但是,经常写这样的东西是很烦人的,所以我们的目标是减轻一些痛苦。除了避免toForeign步骤外,您将只需要处理一个Maybe,而不是一个read函数返回

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