Haskell 三便士gui中基于行为的动态元素
简单地说,我正在寻找一种显示Haskell 三便士gui中基于行为的动态元素,haskell,frp,threepenny-gui,Haskell,Frp,Threepenny Gui,简单地说,我正在寻找一种显示行为(UI元素)的方法 我的实际用例是显示一个可以过滤的表。因此,我有一个函数tableElement::String->UI元素(字符串参数是过滤器条件)和一个输入字段filterElement::Element,它表示过滤器。对我来说,最自然的结合方式是这样的: bFilter <- stepper "" (valueChange filterElement) displaySomehow (fmap tableElement bFilter) bFilt
行为(UI元素)
的方法
我的实际用例是显示一个可以过滤的表。因此,我有一个函数tableElement::String->UI元素
(字符串参数是过滤器条件)和一个输入字段filterElement::Element
,它表示过滤器。对我来说,最自然的结合方式是这样的:
bFilter <- stepper "" (valueChange filterElement)
displaySomehow (fmap tableElement bFilter)
bFilter您可以使用currentValue
获取UI元素
,从那里您(希望)进入UI
,并可以获取元素以包含在HTML中。(作者在此)
请注意,UI元素
表示一个操作,该操作在执行时可能会创建一个新的元素
。您必须执行操作才能执行后者。不幸的是,目前在FRP样式中无法完全做到这一点,您将不得不求助于onChanges
组合器,以便在过滤器更改时重新创建表。在那里,您可以使用设置子项
例如:
onChanges bFilter $ \s -> do
el <- tableElement s
myTable # sink children [el]
onChanges bFilter$\s->do
呃,这很不幸。我觉得这有点违背了FRP的精神。另一方面,我猜三便士gui一开始并不是一个纯粹的FRP库。你认为将来有机会使基于行为的动态元素成为可能吗?是的,是的。该计划是在某个时候将threepenny与反应式香蕉集成,从而支持动态事件切换,这是这里需要的相关概念。听起来不错,我很期待。我也遇到了同样的问题,我也希望能够最大限度地支持它!:)