2012-05-21 22 views
6

Tôi cần sử dụng một số người trợ giúp khối tay lái bên trong thuộc tính của phần tử. Làm cách nào để có đượcNhững người giúp đỡ khối tay lái bị rung lên trong HAML

.some.class{:class => "{{if property}} otherClass {{/if}}"} 

để phân tích cú pháp chính xác? Đây là kết quả được biên dịch như sau:

<div class='class otherClass property}} some {{/if}} {{if'></div> 

Tôi đã cố gắng thoát khỏi mọi ký tự không phải từ, thử dấu nháy đơn và điều chỉnh khoảng cách, nhưng dường như không sửa lỗi. Tôi hy vọng sẽ tìm thấy một giải pháp thanh lịch hơn là chỉ sử dụng từ khóa: plain.

+3

Xin lỗi vì trả lời câu hỏi của riêng tôi (hoặc dường như tôi không thể cho người khác 6 giờ), nhưng tôi thực sự tìm thấy một giải pháp mà làm việc ở đây . Dường như có một vấn đề với cách haml kết hợp các lớp từ các thuộc tính với các lớp từ "chuỗi chấm". Thay đổi nó để điều này dường như làm việc tốt. % div {: class => "một số lớp {{if property}} otherClass {{/ if}}"} – user1408632

+1

Nếu bạn đăng giải pháp của mình làm câu trả lời, tôi sẽ bỏ phiếu cho câu trả lời cho ya. Bí quyết đó hoàn toàn hiệu quả! Cảm ơn. – poweratom

Trả lời

1

Tôi nhận thấy rằng bạn cần thêm một số ký tự trước {{}} để Haml chấp nhận nó. Ví dụ:

%div.some.class{:class => "a{{foo}}"} 

Không có ý tưởng, nhưng các mục đích của tôi.

0

Thực ra, mẹo này không hoạt động đối với bất kỳ biểu thức nào xử lý phức tạp vừa phải.

Cuối cùng, tôi đã giải quyết điều này bằng cách sử dụng chuỗi ký tự trong haml. Vì vậy, trong trường hợp ví dụ được hiển thị trong câu hỏi. Các haml dưới đây là cần thiết, hãy nhớ đóng thẻ của bạn, đó là dòng cuối cùng.

\ <div class='class {{if property}} otherClass {{/if}} some '> 
-# Normal haml goes here and must not start at the same indent as the above literal 
\ </div> 
0

Di chuyển tất cả các lớp vào thuộc tính lớp thay vì sử dụng cả ký hiệu dấu chấm và ký tự lớp.

.col-md-12.card{ class: "{{toLowerCase level_name}}-master-card" } 

trở thành

%div{ class: "col-md-12 card {{toLowerCase level_name}}-master-card" } 

HAML 4.0.7

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