2010-02-07 24 views
64
#item 

tạo một div với id = "item"Làm cách nào để tạo id động trong Haml?

.box#item 

tạo một div với class = "hộp" và id = "item"

.box#="item "+x 

tạo một div với class =" hộp "và nhận xét '# =" mục "+ x'

.box# 
    ="item"+x 

ném" Phần tử không hợp lệ: các lớp và id phải có giá trị. "

Làm cách nào để đặt id thành biến?

Trả lời

118

Có hai cách:

Dạng dài chiều (xác định id như thể nó là một thuộc tính thường xuyên):

.box{:id => "item_#{x}"} 

sản xuất này (x là những gì bao giờ x.to_s để đánh giá):

<div class="box" id="item_x"> 

dạng ngắn cách:

.box[x] 

sản xuất như sau giả x là một thể hiện của item:

<div class="box item" id="item_45"> 

Xem HAML reference để biết thêm thông tin.

+2

tôi đã phải xóa khoảng trắng để làm cho nó hoạt động: .box {: id => "item _ # {x}"} – jethroo

+0

làm thế nào để bạn nối một chuỗi và một biến chuỗi được chuyển đổi trong phương thức lối tắt? Tôi đã thử '.box [" item "+ s]' và các biến thể không thành công. Đó có phải là lối tắt bằng cách sử dụng dấu ngoặc vuông chỉ tương thích với các biến không? – ahnbizcad

+1

@gwho phương pháp phím tắt yêu cầu x là một phiên bản của mục. Sử dụng biểu mẫu nội suy dạng chuỗi dài để đạt được những gì bạn đang tìm kiếm. .box {: id => "item # {s}"} – EmFi

Các vấn đề liên quan