2015-10-29 34 views
26

tôi cần phải gắn thẻ phần tử Elm.Http tôi với tùy chỉnh "đĩa dữ liệu *" thuộc tính, ví dụ:Làm thế nào để tạo các thuộc tính dữ liệu HTML trong Elm?

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

Tôi đã thử những điều sau đây:

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

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

Nhưng điều này không có gì. Có ai biết cách nào không?

Tôi nghĩ rằng vấn đề là Elm thực sự thiết lập thuộc tính JavaScript DOM, vì vậy tôi thực sự muốn gọi element.dataset.row = "1" bằng cách nào đó. Nền tảng là tôi cần để lộ một số dữ liệu để jQuery cho xử lý sự kiện của tôi, bởi vì thư viện sự kiện Elm thiếu một loạt các tính năng tôi cần, chẳng hạn như preventDefault có điều kiện và tuần tự hóa biểu mẫu. Có nhiều cách khác để cung cấp dữ liệu thông qua DOM, nhưng các thuộc tính data- * rất đơn giản.

Trả lời

38

Thay vào đó, bạn có thể sử dụng hàm attribute.

view ... = 
    tr [ attribute "data-row" "1" ] 
Các vấn đề liên quan