Tôi đang cố gắng hiển thị một liên kết đi trước bởi một biểu tượng. Tôi đang sử dụng động cơ templating Slim cùng với Bootstrap CSS.Cách hiển thị HTML bên trong các mẫu Slim
Thông thường, bạn có thể làm điều này theo cách sau:
<a href="#"><i class="icon-user"></i> My Profile</a>
Theo tài liệu của Slim, chúng ta có thể sử dụng ==
để render mà không thoát HTML. Vì vậy, dịch này để Slim, tôi đã thử biến thể sau đây:
li== link_to "<i class='icon-user'></i> My Profile", current_user
li== link_to "#{'<i class="icon-user"></i>'.html_safe} My Profile", current_user
li= link_to "#{'<i class="icon-user"></i>'.html_safe} My Profile", current_user
Tất cả các biến thể render <a href="https://stackoverflow.com/users/1"><i class="icon-user"></i> My Profile</a>
thoát thẻ i
.
Làm cách nào để ngăn Slim hoặc Rails thoát khỏi html?
(Rails 3.2 với Slim 1.2.1)
Thêm rằng nếu bạn có một giá trị thuộc tính đó nên được trả lại như html an toàn, sử dụng kép "=": 'khoảng dữ liệu biểu tượng == icon' (nơi biểu tượng cuối cùng là một biến có chứa ...;) – elado
@elado: không phải tài liệu mỏng nói chính xác ngược lại: https://github.com/slim-template/slim#output-without-html-escaping-? – MoMolog
'==' không thoát, '='. Bạn có thể sử dụng 'tag attr = variable' để hiển thị biến thoát. nếu bạn không muốn thoát khỏi nó, hãy sử dụng 'tag attr == variable'. Ví dụ: để hiển thị đúng thực thể html dưới dạng thuộc tính, bạn không nên thoát nó: ruby: 'icon =" { "' slim: 'span.icon data-icon == icon' – elado