Подтвердить что ты не робот

Лучший способ обработки атрибутов данных в Slim

Я оценил Slim как замену HAML в личном проекте, и он, похоже, не обрабатывает атрибуты данных HTML5 так же изящно, как HAML. Я надеялся, что кто-то, возможно, также столкнется с этим, или, возможно, знал о параметре/синтаксисе, который я еще не нашел в своих документах.

HAML позволяет вам определить атрибуты данных HTML 5, просто используя вложенные хэши:

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

в результате чего

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

4b9b3361

Ответ 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>