2013-09-22 5 views
44

J'évaluait Slim en remplacement de HAML dans un projet personnel, et il ne semble pas traiter les données HTML5 attributs aussi gracieusement que HAML. J'espérais que quelqu'un pourrait aussi avoir été confronté à cela, ou aurait pu connaître une option/syntaxe que je n'ai pas encore trouvée dans leurs documents.La meilleure façon de traiter les données attributs Slim

HAML vous permet de définir HTML 5 data attributes simplement en utilisant hash imbriqués comme ceci:

%a{data: {key1: 'val', key2: 'val'}}

entraînant

<a data-key1='val' data-key2='val'></a>

Répondre

75

Il y a plusieurs façons Slim

  1. As Hash

    Attributs qui seront coupés si un hachage est donné (par ex. data = {a: 1, b: 2} sera rendu de données a = "1" data-b = "2")

  2. utiliser directement comme "mu est trop court" mentionné, tout à fait intuitive .

    a data-title="help" data-content="foo" 
    
  3. Utilisez le code Ruby. Je le fais souvent et rarement au-dessus.

    = link_to 'foo', bar_path, data: {a: 'a', b: 'b'} 
    
+0

Impressionnant, ** # 3 ** est exactement ce que je cherchais. Je n'ai rien vu sauter sur les documents décrivant cela comme les docs HAML l'ont fait. Merci! – mmoss

+3

moss, # 3 n'est ni Haml ni Slim mais Rails helper :) –

+3

Notez que si vous faites 'a href =" # "data = {nom_utilisateur: 'fred', user_id: 1}' il traduira cela en '' - Cela n'a rien à voir avec Rails, comme vous le verrez dans les applications Sinatra. –

0

Je préfère ce genre de fixer ...

@products.each do |product| 
    .module data-id=product.id 

Il travaille pour moi

0

Utilisez le floc opérateur:

h1#section-title*{'data-url'=>'test', 'data-id'=>'test'} = @project.name 
Questions connexes