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

How to create HTML data attributes in Elm?

我需要使用自定义 "data-*" 属性标记我的 Elm.Http 元素,例如:

<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-* 属性是迄今为止最直接的方法。

您可以改用 attribute 函数。

view ... =
    tr [ attribute "data-row" "1" ]