如何在Elm中创建HTML数据属性?

46

我需要在我的 Elm.Http 元素上打上自定义的"data-*"属性,例如:

<tr data-row="1">...</tr>

我已经尝试了以下方法:

import Html exposing (..)
import Html.Attributes exposing (..)
import Json.Encode as JsEncode

view ... =
  tr [ property "data-row" (JsEncode.string (toString 1)) ]

但这样做没有任何效果。有人知道方法吗?

我认为问题在于Elm实际上设置的是JavaScript DOM属性,所以我真的想以某种方式调用element.dataset.row = "1"。

背景是,我需要向jQuery公开一些数据供我的事件处理程序使用,因为Elm事件库缺少我需要的一些功能,例如条件preventDefault和表单序列化。还有其他通过DOM提供数据的方法,但data-*属性是最直接的方法。

1个回答

66
你可以使用attribute函数代替。
view ... =
    tr [ attribute "data-row" "1" ]

1
你如何添加空数据标签? - Kevin Brown
2
如果你对attributeproperty之间感到有些困惑,不妨看看这个链接:https://github.com/elm/html/blob/master/properties-vs-attributes.md - lenards

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接