2017-01-14 8 views
2

purescript-halogenに要素を選択する機能がありますか、それともidで要素を選択する必要がありますか(それは私にとっては非常に奇妙なようです)。PurescriptでIdで要素を選択する

私は追求のドキュメントを読んでおり、UtilにはselectElementの機能がありますが、idで選択できるものはありません。

私はElementを取得するためにgetElementById :: ElementId -> NonElementParentNode -> Eff() (Nullable Element)を使用することができますが、私はHTMLElementにこのElementをオンにする方法がわかりません。

Pursuitの型検索機能も欠けているので、この素朴な質問をお詫び申し上げます。

+0

安全に 'Element'を' HTMLElement'にすることはできません。 'selectElement"#id "'を試してください。しかし、より良い方法は、ハロゲンが 'HTMLElement'を後で必要としないので、' Halogen.VDom.Driver.runUI'の署名で 'HTMLElement'を' Node'に変更することです。 –

答えて

2

これは、仮想DOMを使用するライブラリで作業するときに一般的に行うべきことではありません。idを使用して要素への参照を保存すると、完全に異なる要素または要素これはもはやDOMには付けられません。

要素を取得する方法は、refを使用することです。使用例はin this section of the guideです。これは、イベントハンドラのように動作します。イベントハンドラのように動作します。イベントハンドラは、要素が存在するか削除されるたびにコンポーネントに対してクエリを発行します。コンポーネント状態の参照を更新するクエリを使用する場合は、常に実際の要素があることを確認することができます(何らかの理由で存在しない場合はNothing)。

本当にの場合はgetElementByIdを入力し、次にit is available from purescript-domを入力します。 Halogenは一般的なDOM操作用ではないため、Halogenの一部ではありません。これらのユーティリティ関数は、ハロゲンアプリケーションの初期化を容易にするためにのみ提供されています。