我想要做的是设置字段,当它们处于焦点时显示详细信息,但在没有焦点时显示摘要。例如。
一种)。当它失去焦点(变得模糊?)时,我将值保存在(状态?)映射中,然后将值更改为旧值的函数(即汇总值)
乙)。当它获得焦点时 - 我将汇总值替换为我保存在地图中的旧值
我不知道该怎么做,但我想我可能需要一个状态单子和 UI 单子。我的尝试是:
renderField :: Map->Int->UI (Element, Map)
renderField vs ix = do
input <- UI.input
on UI.blur input $ \_ -> void $ do
fieldValue <- get value input
let newVs = insert ix fieldValue vs
return input # set UI.value (calcNewValue fieldValue)
on UI.focus input $ \_ -> void $ do
let savedValue = findWithDefault "" ix vs
return input # set UI.value savedValue
return (input, newVs)
但我无法让这张地图工作 - 因为它需要跟踪所有的电话......我想它应该是 State monad 什么的?
谢谢。
ñ