如何在 Threepenny GUI 中重新创建一个元素?
How to recreate an element in Threepenny GUI?
如果我在某些 Element
上使用 delete
函数,我该如何重新创建它们(如让它们再次出现)?
我查看了示例和文档,但找不到任何允许我执行此操作的函数,也许 mkElement
需要我将其传递给 String
。但是,由于我正在与 Element
合作,所以要获得 String
会创建它会有点困难。
那有什么办法吗?
鉴于 delete
具有签名 delete :: Element -> UI ()
,因此当您调用 delete
时,您手头有一个 Element
。你为什么不能在某个地方抓住这个 Element
呢? (我的意思是通过多种方式维护对它的引用。)然后只需使用 (#+) :: UI Element -> [UI Element] -> UI Element
将其作为子元素附加到另一个元素。如果您只是想让它重新出现在它之前所在的位置,您只需将它作为子元素附加到开始时作为其父元素的元素。这是您的想法,还是我误解了问题?
(这里是图书馆作者)
实际上,delete
函数所做的不仅仅是从 DOM 树中删除元素——它试图删除在 JS 和 Haskell 端对它的任何引用。本质上,该元素在 delete
.
之后(应该)无法使用
如果你想暂时隐藏一个元素,你可以
- 通过CSS
display
属性隐藏它。
- 休息父元素的子元素,例如通过
element parent # set children []
.
如果我在某些 Element
上使用 delete
函数,我该如何重新创建它们(如让它们再次出现)?
我查看了示例和文档,但找不到任何允许我执行此操作的函数,也许 mkElement
需要我将其传递给 String
。但是,由于我正在与 Element
合作,所以要获得 String
会创建它会有点困难。
那有什么办法吗?
鉴于 delete
具有签名 delete :: Element -> UI ()
,因此当您调用 delete
时,您手头有一个 Element
。你为什么不能在某个地方抓住这个 Element
呢? (我的意思是通过多种方式维护对它的引用。)然后只需使用 (#+) :: UI Element -> [UI Element] -> UI Element
将其作为子元素附加到另一个元素。如果您只是想让它重新出现在它之前所在的位置,您只需将它作为子元素附加到开始时作为其父元素的元素。这是您的想法,还是我误解了问题?
(这里是图书馆作者)
实际上,delete
函数所做的不仅仅是从 DOM 树中删除元素——它试图删除在 JS 和 Haskell 端对它的任何引用。本质上,该元素在 delete
.
如果你想暂时隐藏一个元素,你可以
- 通过CSS
display
属性隐藏它。 - 休息父元素的子元素,例如通过
element parent # set children []
.