2013-09-22 55 views
44

byłem oceny Slim jako zamiennik haml w osobistym projektem, a nie wydaje się, aby obsłużyć dane HTML5 atrybuty jak wdzięcznie jak haml. Miałem nadzieję, że ktoś może również do tego doszło, lub może wiedział o opcji/składni, których jeszcze nie znalazłem w swoich dokumentach.Najlepszy sposób obsłużyć danych atrybutów Slim

haml pozwala zdefiniować HTML 5 data attributes po prostu za pomocą zagnieżdżonych skrótów tak:

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

powodując

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

Odpowiedz

75

Istnieje wiele sposobów, w Slim

  1. Jako Hash

    Atrybuty, które będą dzielone, jeśli zostanie podany skrót (np. Dane = {A 1, B: 2} spowoduje, jak dane-A = "1" danych b = "2")

  2. używać bezpośrednio jako "p, jest zbyt krótki" wspomniano, bardzo intuicyjny .

    a data-title="help" data-content="foo" 
    
  3. Użyj kodu Ruby. Często to robię i rzadko powyżej.

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

niesamowite, ** # 3 ** jest dokładnie tym, czego szukałem. Nie zauważyłem, żeby coś wyskoczyło z dokumentacji opisującej to, co zrobili doktorzy HAML. Dzięki! – mmoss

+3

mech, # 3 nie jest ani Haml, ani Slim, ale pomocnikiem Railsów :) –

+3

Uwaga: jeśli zrobisz 'a href =" # "dane = {nazwa_użytkownika: 'fred', id_użytkownika: 1}' przetłumaczy to na '' - to nie ma nic wspólnego z Railsami, ponieważ zobaczysz, że działa również w aplikacjach Sinatra. –

0

wolę ten rodzaj naprawić ...

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

To działa na mnie

0

Użyj ikona operatora:

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