我在一个个人项目中评估Slim作为HAML的替代品,它似乎不像 HAML 那样优雅地处理 HTML5 数据属性。我希望有人可能也遇到过这种情况,或者可能知道我在他们的文档中还没有找到的选项/语法。
HAML 允许您简单地使用嵌套哈希定义HTML 5 数据属性,如下所示:
%a{data: {key1: 'val', key2: 'val'}}
导致
<a data-key1='val' data-key2='val'></a>
我在一个个人项目中评估Slim作为HAML的替代品,它似乎不像 HAML 那样优雅地处理 HTML5 数据属性。我希望有人可能也遇到过这种情况,或者可能知道我在他们的文档中还没有找到的选项/语法。
HAML 允许您简单地使用嵌套哈希定义HTML 5 数据属性,如下所示:
%a{data: {key1: 'val', key2: 'val'}}
导致
<a data-key1='val' data-key2='val'></a>
Slim 有多种方式
作为哈希
如果给出 Hash,属性将被连字符(例如 data={a:1,b:2} 将呈现为 data-a="1" data-b="2")
像“亩太短”提到的那样直接用,挺直观的。
a data-title="help" data-content="foo"
使用 Ruby 代码。我经常这样做,很少这样做。
= link_to 'foo', bar_path, data: {a: 'a', b: 'b'}
使用splat运算符:
h1#section-title*{'data-url'=>'test', 'data-id'=>'test'} = @project.name
.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>
I prefer this kind to fix...
@products.each do |product|
.module data-id=product.id
It is working for me