2012-09-17 20 views
14

tôi biết làm thế nào để tạo ra một liên kết với một đĩa dữ liệu * thuộc tính:HAML: Tạo dữ liệu-xxx-yyy thuộc tính

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

tạo:

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

Nhưng làm thế nào về 2 tên dữ liệu sâu , như data-user-namedata-user-age, một cách để nhóm các thuộc tính dữ liệu. Như bạn có thể đoán, tôi đã cố gắng:

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

Nhưng nó không hoạt động, đem lại cho tôi đầu ra HTML lạ:

<a href="#" data-user="nameJohnage24">Hi John</a> 

Bất kỳ ý tưởng làm thế nào để làm điều đó? Cảm ơn trước.

Trả lời

22

Bạn sẽ phải sử dụng

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

Thuộc tính data là chuyên cased bởi HAML và nó chỉ chiếm giá trị nông.

+0

Vì vậy, nó không thể nhóm 'sử dụng' cách chúng ta nhóm lại 'data-'? – htaidirt

+0

Không, vì thuộc tính 'dữ liệu' được đặc biệt bởi HAML và nó chỉ chiếm các giá trị nông. Bạn có thể mở một vấn đề tại https://github.com/haml/haml để kích thích một số cuộc thảo luận về nó. Tôi không nhìn nhưng tôi sẽ không ngạc nhiên nếu nó đã được đề cập trước đó. –

+2

Cảm ơn Casey, vấn đề được mở trên github https://github.com/haml/haml/issues/593 – htaidirt

-2

Có, bạn có thể! Từ đơn giản ...

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

Để phức

%a(data-user-name="#{User.first.name}", data-stack-overflow="all of these will be custom attributes in your link"){href: "garfield.com"} 
Các vấn đề liên quan