2015-10-29 8 views
26

Ich brauche meine Elm.Http Elemente mit benutzerdefinierten "daten *" Attribute zu markieren, zum Beispiel:Wie HTML-Datenattribute in Elm erstellen?

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

Ich habe versucht, die folgenden:

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

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

Aber das tut nichts. Weiß jemand einen Weg?

Ich denke, das Problem ist, dass Elm tatsächlich JavaScript-DOM-Attribute setzt, also möchte ich wirklich element.dataset.row = "1" irgendwie aufrufen.

Der Hintergrund ist, ich muss einige Daten für meine Event-Handler jQuery verfügbar machen, weil die Elm Event-Bibliothek eine Reihe von Features fehlt, wie Conditional PreventDefault und Formularserialisierung. Es gibt andere Möglichkeiten, Daten über das DOM zu liefern, aber Daten-Attribute sind bei weitem die einfachsten.

Antwort

38

Sie können stattdessen die Funktion attribute verwenden.

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