2017-01-14 5 views
2

id으로 요소를 선택하려면 purescript-halogen에 함수가 있습니까? 또는 사용자 정의 역할이 필요합니까 (매우 이상하게 보일 수 있습니다). 내가 추구에 대한 설명서를 읽고 있어요, 나는 UtilselectElement 기능을 볼 수 있지만 아무데도 내가 나를 id에 의해 선택할 수 있습니다 무언가를보고하지 않는다Purescript에서 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의 일부는 아닙니다. 이러한 유틸리티 기능은 할로겐 응용 프로그램을 쉽게 초기화 할 수 있도록 제공됩니다.