我在个人项目中评估使用Slim替代HAML,发现它处理HTML5数据属性的方式似乎没有HAML那样优雅。我希望有人也遇到过这个问题,或者知道文档中我还没找到的选项/语法。
HAML允许您通过使用嵌套哈希表来定义HTML 5数据属性,如下所示:
%a{data: {key1: 'val', key2: 'val'}}
结果为:
<a data-key1='val' data-key2='val'></a>
我在个人项目中评估使用Slim替代HAML,发现它处理HTML5数据属性的方式似乎没有HAML那样优雅。我希望有人也遇到过这个问题,或者知道文档中我还没找到的选项/语法。
HAML允许您通过使用嵌套哈希表来定义HTML 5数据属性,如下所示:
%a{data: {key1: 'val', key2: 'val'}}
结果为:
<a data-key1='val' data-key2='val'></a>
Slim 有多种实现方法:
作为哈希
如果给定一个哈希,则其中的属性将使用连字符表示(例如,data={a:1,b:2} 将呈现为 data-a="1" data-b="2")
如 "mu is too short" 所述,直接使用非常直观。
a data-title="help" data-content="foo"
使用Ruby编写代码。我经常这样做,很少使用其他语言。
= link_to 'foo', bar_path, data: {a: 'a', b: 'b'}
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>
我更喜欢这种方式来解决问题...
@products.each do |product|
.module data-id=product.id
这对我有效
a href="#" data={user_name: 'fred', user_id: 1}
,它将被翻译成<a href="#" data-user-name="fred" data-user-id="1"></a>
。这与Rails无关,因为您可以在Sinatra应用程序中看到其工作情况。 - Dave Sag.container, data: { url: "link", value: "stuff" }
这样的直接 div 元素。相反,您必须使用 #2,即.container[ data-url="link" data-value="stuff" ]
。 - ahnbizcad