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

wma*_*ley 37 elm

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

<tr data-row="1">...</tr>
Run Code Online (Sandbox Code Playgroud)

我尝试过以下方法:

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

view ... =
  tr [ property "data-row" (JsEncode.string (toString 1)) ]
Run Code Online (Sandbox Code Playgroud)

但这没有任何作用.有人知道吗?

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

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

rob*_*oby 53

您可以改用属性函数.

view ... =
    tr [ attribute "data-row" "1" ]
Run Code Online (Sandbox Code Playgroud)

  • 如果您对“attribute”与“property”之间有些困惑或困惑,可能值得查看一下:- https://github.com/elm/html/blob/master/properties-vs-attributes。 MD (2认同)