【发布时间】:2017-06-02 08:27:54
【问题描述】:
我遇到了与这个未回答的问题类似的问题:Purescript: Halogen HTML DSL only Renders "id" tags
我正在尝试定义一个新的 HTML 元素。特别是,我想显示带有一些新标签的svg elem 和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与它有关,但是我不确定如何找到已构建元素的命名空间。
【问题讨论】:
标签: purescript virtual-dom halogen