在 purescript-dom 中,你如何从一个 Node 转到一个特定的元素类型?
In purescript-dom how do you go from a Node to a specific element type?
我想我可能缺少 purescript-dom
模块中的一个关键函数,用于将 Node 转换为特定的元素类型。例如,如果我有一个 Event
,我可以使用 DOM.Events.Events.target 来获取节点,但似乎获取特定元素的唯一方法是使用 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
从节点到元素类型有没有更好的方法?
想法是使用 toForeign
,然后当你想向上转换 Node
/ 元素类型时使用 readHTMLInputElement
。
虽然不断地写这样的东西很烦人,所以 purescript-dom-classy
旨在减轻它的一些痛苦。除了避免 toForeign
这一步,你将只有一个 Maybe
要处理,而不是 Except
一个 read
函数将 return.
我想我可能缺少 purescript-dom
模块中的一个关键函数,用于将 Node 转换为特定的元素类型。例如,如果我有一个 Event
,我可以使用 DOM.Events.Events.target 来获取节点,但似乎获取特定元素的唯一方法是使用 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
从节点到元素类型有没有更好的方法?
想法是使用 toForeign
,然后当你想向上转换 Node
/ 元素类型时使用 readHTMLInputElement
。
虽然不断地写这样的东西很烦人,所以 purescript-dom-classy
旨在减轻它的一些痛苦。除了避免 toForeign
这一步,你将只有一个 Maybe
要处理,而不是 Except
一个 read
函数将 return.