Rails использует массив в HAML + Coffeescript

1

Здравствуйте, у меня есть следующие примеры, я не могу понять, как заставить его работать в html.haml.

Пример 1 (рабочий):

# In html.erb file
<% @my_array = ['1, '2'] %>

<script>
  window.running_cycler = new MyAwesomeClass({
    custom_data: <%= raw @my_array %>
  });
</script>

Пример 2 (не работает)

# In html.haml file
- @my_array = ['1', '2']

:javascript
  window.running_cycler = new MyAwesomeClass({
    custom_data: "#{raw @my_array}" 
    # or 
    # custom_data: "#{@my_array}"
  })

Это ошибка браузера, которую он выбрасывает. Изображение 174551 Как я могу заставить его работать в html.haml файле? Кажется, что raw не работает вообще. Если я не использую 'raw', тогда формат, который он преобразует, является:

"[&quot;1&quot;, &quot;8&quot;]"

Изображение 174551

Пожалуйста помоги. Спасибо!

Теги:
haml
coffeescript

1 ответ

2
Лучший ответ

Вы можете использовать одинарные кавычки и raw:

- @my_array = ['1', '2']

:javascript
  window.running_cycler = { 'custom_data': '#{raw @my_array}' }
  console.log(JSON.parse(window.running_cycler.custom_data).length)
  // 2
  • 0
    Здравствуйте, спасибо за ответ. Он работает с JSON.parse ('# {raw @my_array}'). Однако я запутался, что мне нужно явно вызывать JSON.pase, тогда как Coffeescript должен это делать.
  • 1
    Очевидно, window.running_cycler = { custom_data: #{raw @my_array} } работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню