简单来说,我正在寻找一种显示Behaviour (UI Element)
的方法。
我的实际用例是显示一个可以过滤的表。所以我有一个函数tableElement :: String -> UI Element
(String
参数是过滤条件)和一个输入字段filterElement :: Element
,它代表过滤器。结合这些的最自然的方式是这样的:
bFilter <- stepper "" (valueChange filterElement)
displaySomehow (fmap tableElement bFilter)
这也是在榆树中完成的方式。
到目前为止,我发现的最接近的事情是使用sink children
,但这仅适用于[Element]
,而不适用于[UI Element]
。另外,我必须使用虚拟元素作为父元素,或者与其余的孩子一起使用。
使用threepenny-gui实现类似这样的事情的最佳方法是什么?
答案 0 :(得分:2)
(作者在这里)
请注意,UI Element
表示操作,执行后可能会创建 new Element
。你必须执行动作才能完成后者。不幸的是,目前没有办法在FRP风格中完全做到这一点,每当过滤器改变时,你将不得不求助onChanges
组合器重新创建表。在那里,您可以使用set children
。
示例:
onChanges bFilter $ \s -> do
el <- tableElement s
myTable # sink children [el]
答案 1 :(得分:0)
您可以currentValue
使用UI Element
从UI
中获取{{1}},并且可以获取包含在HTML中的元素。