Как создать атрибуты данных HTML в Elm?

Мне нужно пометить элементы 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 фактически устанавливает атрибуты DOM JavaScript, поэтому я действительно хочу как-то вызвать element.dataset.row = "1".

Предыстория заключается в том, что мне нужно предоставить jQuery некоторые данные для моих обработчиков событий, потому что в библиотеке событий Elm отсутствует ряд необходимых мне функций, таких как условное предотвращение по умолчанию и сериализация форм. Существуют и другие способы предоставления данных через модель DOM, но атрибуты data-* являются наиболее простыми.


elm
person wmakley    schedule 29.10.2015    source источник


Ответы (1)


Вместо этого вы можете использовать функцию attribute.

view ... =
    tr [ attribute "data-row" "1" ]
person robertjlooby    schedule 29.10.2015
comment
Как добавить пустые теги данных? - person Kevin Brown; 20.11.2018
comment
Если вы немного озадачены или сбиты с толку между attribute и property, возможно, стоит проверить это: - github.com/elm/html/blob/master/properties-vs-attributes.md - person lenards; 26.02.2020