Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 三便士gui中基于行为的动态元素_Haskell_Frp_Threepenny Gui - Fatal编程技术网

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与反应式香蕉集成,从而支持动态事件切换,这是这里需要的相关概念。听起来不错,我很期待。我也遇到了同样的问题,我也希望能够最大限度地支持它!:)