Синатра / Хэмл: Как выполнить код Ruby внутри Javascript? - PullRequest
1 голос
/ 09 июля 2011

Я пишу приложение 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 отображается как код, а не исполняется.

Ответы [ 3 ]

1 голос
/ 09 июля 2011

У меня была такая же проблема.Базовая интерполяция строк, кажется, работает, но ничего сложного.То, что я принял, это:

-v = "##{person.id}").attr("style", "#{person.style}"
:javascript
  $(function() {
    - @persons.each do |person|
      $(#{v});
  });
1 голос
/ 11 июля 2011
:javascript
  $(function() {
    #{- @persons.each do |person|}
      $("##{person.id}").attr("style", "#{person.style}");
  });
0 голосов
/ 09 июля 2011

взгляните на этот пост, может быть, это будет полезно.

Методы Ruby в Javascript в HAML

...