我正在编写一个Sinatra + Haml应用程序,在我的Javascript代码中,我想要执行一些Ruby。在erb中,以下工作:
<script type="text/javascript">
$(function() {
<% @persons.each do |person| %>
$("#<%= person.id %>").attr("style", "<%= person.style %>");
<% end %>
});
</script>
但是我怎么用Haml写这个呢?我试过像
这样的东西:javascript
$(function() {
- @persons.each do |person|
$("##{person.id}").attr("style", "#{person.style}");
});
但是Ruby代码被渲染为代码而不是被执行。
答案 0 :(得分:1)
我遇到了同样的问题。基本的字符串插值似乎有效,但并不复杂。我采用的是:
-v = "##{person.id}").attr("style", "#{person.style}"
:javascript
$(function() {
- @persons.each do |person|
$(#{v});
});
答案 1 :(得分:1)
:javascript
$(function() {
#{- @persons.each do |person|}
$("##{person.id}").attr("style", "#{person.style}");
});
答案 2 :(得分:0)
看一下这篇文章,也许这可能会有所帮助。