2012-09-17 34 views
14

sé cómo crear un enlace con un atributo Data- *:HAML: Crear datos-xxx-yyy atributo

%a{ :href => "#", :data => { :name ="John", :age => 24 } } Hi John 

genera:

<a href="#" data-name="John" data-age="24">Hi John</a> 

Pero ¿qué tal un nombre de los datos de profundidad 2 , como data-user-name y data-user-age, una forma de agrupar atributos de datos. Como se puede adivinar, he intentado:

:data => { :user => { :name => "John", :age => 24 } } 

Pero esto no funciona, me da extraña salida HTML:

<a href="#" data-user="nameJohnage24">Hi John</a> 

alguna idea de cómo hacerlo? Gracias por adelantado.

Respuesta

22

Vas a tener que utilizar

:data => {'user-name' => 'John', 'user-age' => 24} 

El atributo es data-especial entubado por HAML y sólo representa los valores de poca profundidad.

+0

Por lo tanto, no es posible agrupar '' fácil de la forma en que se agruparon los datos ''-? – htaidirt

+0

No, porque el atributo 'data' está especializado por HAML y solo tiene en cuenta los valores superficiales. Puede abrir un problema en https://github.com/haml/haml para iniciar una discusión al respecto. No miré, pero no me sorprendería si se hubiera mencionado antes. –

+2

Gracias Casey, problema abierto en github https://github.com/haml/haml/issues/593 – htaidirt

-2

Sí, puedes! De lo simple ...

%a(data-user-name="John", data-user-last-name="Arbuckle") 

al complejo

%a(data-user-name="#{User.first.name}", data-stack-overflow="all of these will be custom attributes in your link"){href: "garfield.com"}