2017-04-18 6 views
2

deleteの機能をElementに使用すると、どうすれば再作成できますか?Threepenny GUIで要素を再作成する方法は?

私は例とドキュメントを見てきましたが、を除いて私がこれを行うことを可能にする関数を見つけることができませんでした。それにはStringが必要です。しかし、私はElementと一緒に作業しているので、それは少し難しいでしょうStringを作成しています。

これを実行する方法はありますか?

答えて

2

deleteの署名がdelete :: Element -> UI()であるとすれば、deleteを呼び出すとが表示されます。なぜあなたはこのElementをどこかで保持できませんか? (これは、いくつかの方法でリファレンスを保持していることを意味します)。次に、(#+) :: UI Element -> [UI Element] -> UI Elementを使用して、子として後で別のエレメントにアタッチしてください。それが以前の場所に再び現れたければ、それを最初に親であった要素に子供のように付けてください。これはあなたが念頭に置いたことですか、それとも私はその質問を誤解しましたか?

+0

ありがとうございました!私はそれを子要素として再表示することを完全に忘れてしまった。それは動作します。 –

3

(ここではライブラリの作者)

は実際に、delete機能だけでDOMツリーから要素を削除するだけではありません - それは、JSとHaskellの側にそれへの参照を削除しようとします。基本的に、要素はdeleteの後では使用できません。

あなたは一時的要素を非表示にしたい場合は、

  • はCSS displayプロパティを経由して、それを隠すことができます。
  • 親要素の子を休止します。 by element parent # set children []
+0

ああ、私はそれがそのように働いたことを認識していませんでした。私はそれを修正します。しかし、 'delete'の後には使えないようにするべきではないことを明確にしていないので、ドキュメントに入れるのは良いでしょう。 –

関連する問題