Purescript Halogen: определение пользовательских элементов HTML
У меня возникли трудности, связанные с этим вопросом без ответа: Purescript: галоген HTML DSL только отображает теги "id"
Я пытаюсь определить новый элемент HTML. В частности, я хотел бы отобразить svg
Элем и image
элемент с некоторыми новыми тегами, как x_
, а также y_
,
Я определяю элемент следующим образом:
image :: forall p i. Array (Prop i) -> Array (HTML p i) -> HTML p i
image xs = element (tagName "image") xs
image_ :: forall p i. Array (HTML p i) -> HTML p i
image_ = image []
А потом атрибуты мне бы хотелось:
image :: forall p i. Array (Prop i) -> Array (HTML p i) -> HTML p i
image xs = element (tagName "image") xs
image_ :: forall p i. Array (HTML p i) -> HTML p i
image_ = image []
Когда я создаю элемент, программа компилирует, но только <image></image>
теги отображаются без указанных атрибутов. Кажется, как галоген взаимодействует с virtual-dom
не позволяет мне сделать это, однако, я не уверен, почему.
В общем, почему я не могу просто добавить какие-либо атрибуты в div
, svg
, или же image
элемент? Я не пользуюсь Halogen.HTML.Indexed
для любого из этих элементов. Это проблема? Является ли средство проверки типов просто отсутствующим фактом, что эти комбинации не разрешены, потому что я их не указал??
В общем, я хотел бы сделать что-то вроде:
customProperty :: forall i. String -> String -> Prop i
customProperty p = prop (propName p) (Just $ attrName p)
а затем позвоните
image [ customProperty "myProperty" "myPropertyValue" ] []
и получить этот атрибут.
========================
Изменить: чтение исходного кода, кажется, что namespace
как-то связано с этим, однако я не уверен, как найти пространство имен уже созданного элемента.