首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Purescript Halogen:定义自定义HTML元素

Purescript Halogen:定义自定义HTML元素
EN

Stack Overflow用户
提问于 2017-01-18 04:22:47
回答 1查看 560关注 0票数 1

我遇到了类似于这个未回答的问题的困难:Purescript: Halogen HTML DSL only Renders "id" tags

我正在尝试定义一个新的HTML元素。特别是,我想用一些新的标记来显示svg elem和image元素,比如x_y_

我定义的元素如下:

代码语言:javascript
复制
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 []

然后我想说的是:

代码语言:javascript
复制
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不允许我这样做,然而,我不知道为什么。

通常,为什么我不能向divsvgimage元素添加任何属性?我不会在这些元素中使用Halogen.HTML.Indexed。这就是问题所在吗?类型检查器是否忽略了不允许这些组合的事实,因为我没有指定它们??

一般来说,我想做一些事情,甚至是:

代码语言:javascript
复制
customProperty :: forall i. String -> String -> Prop i
customProperty p = prop (propName p) (Just $ attrName p)

然后打电话

image [ customProperty "myProperty" "myPropertyValue" ] []

并呈现该属性。

========================

编辑:阅读源代码,namespace似乎与它有关,但是,我不知道如何找到已经构造的元素的命名空间。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-18 11:33:39

如果要设置的属性不是标记的javascript属性,则需要使用attr而不是prop来定义它们。例如,"class“属性称为className属性,因为这是它的名称 interface

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41711307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档