59

我在一个个人项目中评估Slim作为HAML的替代品,它似乎不像 HAML 那样优雅地处理 HTML5 数据属性。我希望有人可能也遇到过这种情况,或者可能知道我在他们的文档中还没有找到的选项/语法。

HAML 允许您简单地使用嵌套哈希定义HTML 5 数据属性,如下所示:

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

导致

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

4

4 回答 4

95

Slim 有多种方式

  1. 作为哈希

    如果给出 Hash,属性将被连字符(例如 data={a:1,b:2} 将呈现为 data-a="1" data-b="2")

  2. 像“亩太短”提到的那样直接用,挺直观的。

    a data-title="help" data-content="foo"
    
  3. 使用 Ruby 代码。我经常这样做,很少这样做。

    = link_to 'foo', bar_path, data: {a: 'a', b: 'b'}
    
于 2013-09-22T20:09:56.457 回答
2

使用splat运算符:

h1#section-title*{'data-url'=>'test', 'data-id'=>'test'} = @project.name
于 2017-07-17T10:19:58.493 回答
1
.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>
于 2019-08-29T10:05:01.257 回答
0

I prefer this kind to fix...

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

It is working for me

于 2016-06-20T06:36:44.027 回答