2013-09-22 23 views
44

stavo valutando Slim come un sostituto per HAML in un progetto personale, e non sembra per gestire gli attributi dei dati HTML5 con la grazia di HAML. Speravo che qualcuno potesse essersi imbattuto in questo, o potrebbe aver saputo di un'opzione/sintassi che non ho ancora trovato nei loro documenti.modo migliore per gestire i dati degli attributi in Slim

HAML consente di definire HTML 5 data attributes semplicemente utilizzando gli hash annidate in questo modo:

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

conseguente

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

risposta

75

Ci sono diversi modi in Slim

  1. As Hash

    Attributi che verranno sillabati se viene assegnato un hash (ad es. data = {a: 1, b: 2} renderanno come dati-a = "1" data-b = "2")

  2. utilizzare direttamente come "mu è troppo breve" menzionato, abbastanza intuitivo .

    a data-title="help" data-content="foo" 
    
  3. Utilizzare codice Ruby. Lo faccio spesso e raramente sopra.

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

Impressionante, ** # 3 ** è esattamente quello che stavo cercando. Non ho visto nulla saltare ai documenti che lo descrivevano come i documenti HAML. Grazie! – mmoss

+3

muschio, # 3 non è né Haml né Slim ma helper Rails :) –

+3

Nota se si esegue 'a href =" # "data = {user_name: 'fred', user_id: 1}' lo tradurrà in '' - questo non ha nulla a che fare con Rails, come vedrete che funziona anche nelle app di Sinatra. –

0

preferisco questo tipo di fissare ...

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

Si sta lavorando per me

0

Utilizzare il splat operatore:

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