Лучший способ обработки атрибутов данных в Slim
Я оценил Slim как замену HAML в личном проекте, и он, похоже, не обрабатывает атрибуты данных HTML5 так же изящно, как HAML. Я надеялся, что кто-то, возможно, также столкнется с этим, или, возможно, знал о параметре/синтаксисе, который я еще не нашел в своих документах.
HAML позволяет вам определить атрибуты данных HTML 5, просто используя вложенные хэши:
%a{data: {key1: 'val', key2: 'val'}}
в результате чего
<a data-key1='val' data-key2='val'></a>
Ответы
Ответ 1
В Slim существует несколько способов
-
Как хэш
Атрибуты, которые будут переноситься, если задан хэш (например, данные = {a: 1, b: 2} будут отображаться как data-a = "1" data-b = "2" )
-
Используйте его напрямую, поскольку "mu слишком короткий", упомянутый, довольно интуитивно понятный.
a data-title="help" data-content="foo"
-
Используйте код Ruby. Я часто делаю это и редко выше.
= link_to 'foo', bar_path, data: {a: 'a', b: 'b'}
Ответ 2
Используйте оператор splat:
h1#section-title*{'data-url'=>'test', 'data-id'=>'test'} = @project.name
Ответ 3
Я предпочитаю, чтобы этот тип исправлялся...
@products.each do |product|
.module data-id=product.id
Он работает для меня
Ответ 4
.your-class*{data: {first_attribute: 'first value', second_attribute: 'second value'} }
Будет производить
<div class="your-class" data-first_attribute="first value" data-second_attribute="second value"></div>