HAML: 创建 data-xxx-yyy 属性

14

我知道如何创建带有data-*属性的链接:

%a{ :href => "#", :data => { :name ="John", :age => 24 } } Hi John

生成:

<a href="#" data-name="John" data-age="24">Hi John</a>

不过,对于类似 data-user-namedata-user-age 这样的2级深度的数据名称,一种分组数据属性的方法。就像你可能猜到的那样,我尝试过:

:data => { :user => { :name => "John", :age => 24 } }

但它不起作用,给我奇怪的HTML输出:

<a href="#" data-user="nameJohnage24">Hi John</a>
任何想法怎样做到这一点?先行致谢。
2个回答

22

你需要使用

:data => {'user-name' => 'John', 'user-age' => 24}

data 属性在 HAML 中是特殊处理的,它只考虑浅层次的值。


那么,我们不能像分组“data-”一样分组“user-”吗? - Hassen
不行,因为data属性在HAML中是特殊情况,并且它只考虑浅层值。你可以在https://github.com/haml/haml上提出问题,引发一些讨论。我没有查看过,但如果之前提到过也不会感到惊讶。 - Casey Foster

-2

可以的!从简单的...

%a(data-user-name="John", data-user-last-name="Arbuckle")

走向复杂

%a(data-user-name="#{User.first.name}", data-stack-overflow="all of these will be custom attributes in your link"){href: "garfield.com"}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接