2015-10-29 17 views
26

Ho bisogno di codificare i miei elementi Elm.Http con l'abitudine "data-*" attributi, ad esempio:Come creare attributi di dati HTML in Elm?

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

Ho provato quanto segue:

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

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

Ma questo non fa nulla. Qualcuno conosce un modo?

Penso che il problema è che Elm sta effettivamente impostando gli attributi DOM JavaScript, quindi voglio davvero chiamare element.dataset.row = "1" in qualche modo.

Lo sfondo è necessario esporre alcuni dati a jQuery per i miei gestori di eventi, poiché alla libreria di eventi Elm mancano alcune delle funzionalità necessarie, come ad esempio preventDefault condizionale e serializzazione dei moduli. Esistono altri modi per fornire dati tramite il DOM, ma gli attributi data- * sono di gran lunga i più semplici.

risposta

38

È possibile utilizzare invece la funzione attribute.

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